jump to navigation

VimでProcessingのコーディングと実行

2009-07-02 01:44 Posted by
nase
in : プログラミング
p.jpg

アートなプログラミング言語「Processing」をVimでコーディング・実行するための方法について紹介します。(Processingについては次の記事が大変参考になります→芸術の秋にProcessingでスケッチプログラミングを始めてみよう(1/3) - @IT)

Processingの実行環境は専用のIDEと一体になっており、残念ながらコマンドラインなどから直接.pdeファイルを実行する手段は用意されていません。

そこで、ここではVimからAutoHotkeyスクリプト経由でProcessingIDEの制御を実現します。

processing.vim

VimでProcessingをコーディングするにあたり、便利なシンタックスプラグインが用意されているので先に導入しておきましょう。

上記プラグインによりProcessingのシンタックスハイライトが有効になります。

また、メソッド名の上でShift+Kすると該当メソッドのローカルHTMLドキュメントをブラウザで開くことができます。

vim_processing_doc_s.gif
Processingドキュメント参照

ただしドキュメントの参照機能には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によりカレントファイルを実行できるようになります。

vim_processing_exe_s.gif
Processing実行例

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で描かれたかわいいモンスターたち。

参考書籍

Built with Processing [改訂版] Built with Processing [改訂版]

日本語の素晴らしいProcessing解説本。まったくプログラミングを知らない人でも読めるように大変親切に書かれています。Processingに興味を持ったら必読


Comments»

1. hoge - 2010-2-16

僕の環境ではexpand(”%:r”)のところをexpand(”%:t:r”)にしたら動きました。

2. nase - 2010-2-16

情報ありがとうございます。こういったコメントは大歓迎です。

3. waken - 2010-11-2

参考にさせていただきました。ありがとうございます。私の環境では、
%2%の部分をダブルクウォーテーションで囲って、
Run,”C:\Program Files\processing\processing.exe” “%2%”
としたらいけました!

4. nase - 2010-11-2

コメントありがとうございます。
ちなみに、ここではウィンドウの存在確認をLoopで行っていますが、後から専用の関数(WinWaitだっけな)があるのを見つけました(^^;
うまく動かないことがある場合はそちらを使ったほうがよいかもしれません。

5. Processingを本気で覚える為に参考になりそうなサイト » Gozaru de 5zaru* - 2011-11-1

[…]   Processing関連開発ガイド JavaScript によるオーディオ&ビジュアルプログラミング VimでProcessingのコーディングと実行 ■[Java] Eclipse で Pluggable Annotation Processing APIAdd Star     Processing関連記事 オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ Share on Tumblr 06/30 ニュースクリップ 27件 […]


*Comments and trackbacks will appear after it is approved by the administrator.