アートなプログラミング言語「Processing」をVimでコーディング・実行するための方法について紹介します。(Processingについては次の記事が大変参考になります→芸術の秋にProcessingでスケッチプログラミングを始めてみよう(1/3) - @IT)
Processingの実行環境は専用のIDEと一体になっており、残念ながらコマンドラインなどから直接.pdeファイルを実行する手段は用意されていません。
そこで、ここではVimからAutoHotkeyスクリプト経由でProcessingIDEの制御を実現します。
processing.vim
VimでProcessingをコーディングするにあたり、便利なシンタックスプラグインが用意されているので先に導入しておきましょう。
上記プラグインによりProcessingのシンタックスハイライトが有効になります。
また、メソッド名の上でShift+Kすると該当メソッドのローカルHTMLドキュメントをブラウザで開くことができます。
ただしドキュメントの参照機能にはPython実行環境が必要な他、標準のままではWindows環境でエラーになる場合があるようなので注意してください。私の場合はftplugin/processing.vimを以下のように修正したところ正しく動作するようになりました。(firefox実行ファイルのディレクトリがPATHに追加されている前提)
28行目
"import webbrowser
import os
43行目
"webbrowser.open(docfile)
os.popen('firefox.exe ' + docfile)
VimからProcessingの実行
それでは本題。VimからAutoHotkey経由でProcessingIDEを制御します。
使用するahkスクリプトは以下の通り。Processingのバージョンやパスなどは適宜変更指定ください。これをAutoHotkeyのコンバートツールで.exe化しておきます。(例:runP5.exe)
IfWinExist, %1% | Processing 1.0.5
{
WinActivate
Send, ^r
return
}else{
Run,"D:\path\to\processing.exe" %2%
Loop, 100
{
sleep, 100
IfWinExist, %1% | Processing 1.0.5
{
WinActivate
Send, ^r
break
}
}
return
}
.vimrc側の設定は以下の通り。先のahkスクリプトにカレントファイル名とフルパスをそれぞれ引数として渡しています。
"<F10>で保存後Processing実行
function! RunP5()
silent execute '!start D:\path\to\runP5.exe ' . "\"" . expand("%:r"). "\" " . "\"" . expand("%:p"). "\""
endfunction
autocmd FileType processing nnoremap <silent> <F10> :up<CR>:call RunP5()<CR>
以上で、指定したショートカットキーでProcessingIDEによりカレントファイルを実行できるようになります。
ProcessingIDEの「Preferences」→「Use external editor」を有効化しておくと、IDE内におけるコード編集を制限することができます。
※日本語コメントを書いた場合は必ずUTF-8で保存する必要があるので注意してください。
参考ページ
Processing.jp
国内のProcessingポータル。上部のサムネイルからProcessingの超絶作例を見ることができます。
Processing(proce55ing) .pde ファイルをコマンドラインからコンパイル/アプリケーションを作成する - cranebirdの日記
Javaに変換してコマンドラインから実行するという手もあるらしい。
Emacs で processingのファイルを編集する - hibomaのはてなダイアリー
Emacs&Macな方はこちら。
Processing monsters
これはおまけ。Processingで描かれたかわいいモンスターたち。
参考書籍
日本語の素晴らしいProcessing解説本。まったくプログラミングを知らない人でも読めるように大変親切に書かれています。Processingに興味を持ったら必読。
Comments»
僕の環境ではexpand(”%:r”)のところをexpand(”%:t:r”)にしたら動きました。
情報ありがとうございます。こういったコメントは大歓迎です。
参考にさせていただきました。ありがとうございます。私の環境では、
%2%の部分をダブルクウォーテーションで囲って、
Run,”C:\Program Files\processing\processing.exe” “%2%”
としたらいけました!
コメントありがとうございます。
ちなみに、ここではウィンドウの存在確認をLoopで行っていますが、後から専用の関数(WinWaitだっけな)があるのを見つけました(^^;
うまく動かないことがある場合はそちらを使ったほうがよいかもしれません。
[…] Processing関連開発ガイド JavaScript によるオーディオ&ビジュアルプログラミング VimでProcessingのコーディングと実行 ■[Java] Eclipse で Pluggable Annotation Processing APIAdd Star Processing関連記事 オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ Share on Tumblr 06/30 ニュースクリップ 27件 […]