WASY-LOG

たいした話はしません

VimでProcessingを動かす

はじめに

Processingの標準IDEが使いづらいし重くて嫌いなのでVimで動かせるようにしました.OSはLinux Mint 18です.

vim-processingの導入

私はNeoBundleでVimプラグイン管理をしているので,その前提で進めていきます.deinとか使ってる方は適宜読み替えてください.

vim-processingというプラグインが提供されていますのでありがたく使わせていただきましょう.実行やシンタックスハイライトが可能になります.
以下のように~/.vimrcに追加してから:NeoBundleInstallします.

NeoBundle 'sophacles/vim-processing'

次に,Processing IDEをダウンロードします.公式HPから適当に選んでください(Processing.org).

/optに解凍して生成されたフォルダを移動します.今回私がダウンロードしたのは最新版(2016/08/11当時)のバージョン3.1.2です.

/binにprocessing-javaシンボリックリンクを作成します.

$ sudo ln -s /opt/processing-3.1.2/processing-java /bin/processing-java

これで環境の設定は完了となります.

(2017/6/19追記)
新環境にて上記の設定しなおすと,:makeを叩いた際に以下のようなエラーを吐かれたので対処しました.

java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory

lddでjavaコマンドの依存関係を調べます.

$ which java
/usr/bin/java
$ ldd /usr/bin/java
    linux-vdso.so.1 =>  (0x00007fff22ba1000)
    libjli.so => not found
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3c8c0c6000)
    /lib64/ld-linux-x86-64.so.2 (0x0000560c3ef59000)

はい.libjli.soがnot foundとのことです.少しインターネットさんの知恵をお借りしたところ,インストール済みのJREなどからlibjli.soを引っ張ってこればいいようです.
JRE内のlibjli.soからシンボリックリンクを貼ります.

$ sudo find / -name libjli.so
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/jli/libjli.so
/home/wasyro/android-studio/jre/jre/lib/amd64/jli/libjli.so
/home/wasyro/android-studio/jre/lib/amd64/jli/libjli.so
$ sudo ln -s /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/jli/libjli.so /usr/lib
$ ldd /usr/bin/java
    linux-vdso.so.1 =>  (0x00007ffc6cb54000)
    libjli.so => /usr/lib/libjli.so (0x00007f8e22704000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8e2233b000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8e22120000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8e21f1c000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8e21cff000)
    /lib64/ld-linux-x86-64.so.2 (0x000055db08af3000)

依存関係が解消されました.これで動くはず…

Error: missing `server' JVM at `/opt/processing-3.3.4/java/lib/amd64/server/libjvm.so'.
Please install or use the JRE or JDK that contains these missing components.

怒られました.ただこれも先ほどと同様の手順でlibjvm.soを引っ張れば良さそうです.

$ sudo find / -name libjvm.so
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
/home/wasyro/android-studio/jre/jre/lib/amd64/server/libjvm.so
sudo ln -s /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so /opt/processing-3.3.4/java/lib/amd64/server/

今度は動きました.
(2017/6/19追記ここまで)

使ってみる

作業フォルダ内に 作業フォルダ名.pde となるようにメインルーチンを作成します.test/test.pdeみたいな感じですね.
というわけで以下のような感じでtest.pdeを書いてみました.

void setup(){
  size(640, 400);
  background(255);
}

void draw(){
  ellipse(width/2, height/2, 200, 200);
}

F5キーまたは:makeコマンドで実行します.
f:id:beybr6:20160924214304p:plain
実行画面はこんな感じになります.毎回Could not parse -1 –displayの警告が出るのですがちゃんと動きます.怒られる原因がイマイチわからないので詳しいおじさん教えてください.
ウィンドウを閉じて何らかのキーを押すとエディタに戻ります.
シリアル通信を使う場合は管理者権限付きでVimを起動しましょう.

さいごに

ファッキンProcessing IDE