Vim Ruby EvalというVimプラグインを作りました。

 

https://github.com/kmdsbng/vim-ruby-eval/

 

どういうプラグインかというと、以下の画像のようなことができるようになります。

 

f:id:kmdsbng:20140222222544g:plain

 

Ruby Tapasでこういうことをやってたのがかっこ良くて、どうやったらできるのか調べてみたところ、Sublime TextだとできるらしいけどVimではできないみたいだったので、作ってみた。

 

すごくかっこよかったので作ったんだけど、正直ライブコーディングですごい!と言われる以外にどういう使いどころがあるのか自分でも疑問だったんですが、実際に使ってみると、結構使える。

 

たとえばライブラリの挙動を確認したりするときには、pryを使ったり、短いサンプルコードを書いてQuickRun で動かしてみる、ということをやると思うんですが、QuickRunの代わりにVIM Ruby Evalを使うと、結果がコードのコメントとして残るので、あとから参照できるのがなかなか便利。あとは出力の整形を考えなくてもコードの途中に結果が出てくれるのはかなり気持ちいい。意外と実作業でも便利に使えることがわかってびっくりしました。

 

ただ、実装はあんまり良くなくて、ASTを作ってプログラムを解析するとかいうことはしてなくて、単に行レベルでマーカーコメントを見つけたら、その行の結果を出力するようにプログラムを変形してます。なので文字列の中でマーカーコメントと同じ文字列が含まれてたり、引数の途中でマーカーコメント入れたりするとうまく動きません。あまりそういうエッジケースでちゃんと動くことを求めたわけではないのでまあいいかなと思ってます。あとVimのRuby Interfaceに依存してますので、入ってない場合は configureで --ruby-interp を有効にして Vimをビルドしなおしてください。

 

ライブコーディングや他人に見せるときに使うと、デキる奴感をアピールできると思います。便利に使ってください。