- Lua
- MzScheme
- Perl5
- Python2
- Python3
- Ruby1.8
- Ruby1.9
- TCL
vim7-if_mruby.diff基本的な動作は if_ruby に合わせてあります。
https://gist.github.com/4662845
:mruby (1..100).to_a.each{|x| puts x}
こんな事も出来ますし、if_ruby 同様に
:mruby VIM::Window::current.height = 3
こんな事も出来ます。1点だけ移植出来なかった物があり、ruby には
rb_define_virtual_variable
という API があり、これを使うと変数の参照でC言語の関数が呼び出せるのですが、mruby にはこれ相当の物がありませんでした。メソッド名に「$」を含ませる事も出来ないので、結局
$curwin
と $curbuf
については __curwin
と __curbuf
という名称に変更しています。おおよそ動くのですが
if_mruby の可能性について - GitHubのコメントにも書いた通り、
Vim標準の外部インタフェースとして、if_rubyがありますが、素のRuby言語は言語組み込みを想定されていないためいろんな困難があります...
https://github.com/vim-jp/issues/issues/297
ただし僕は現状vim-devに送るつもりはない。mrubyはダイナミックロード(require)をサポートしていないし、vimから使うmrubyに新しい機能が欲しくなったらという問題があるので、すぐさま vim-dev にパッチを送るつもりは無いです。
を毎回しないといけない。
- mruby に欲しい mrbgem を導入
- libmruby.a をビルド
- vim をビルド
Vim に if_mruby が入るかどうかは、require が入るかどうかに掛かっているんですよ!Matz さん!(チラッチラッ)
良かったら遊んで下さい。
追記
mruby-require がいい感じに出来上がってきたので、vim-dev に送るかもです。