vimのcurrent bufferでrubyのソースコードを実行したい。お試しで書いたファイルすら作ってない場合どうやるのがいいのかなと考えてみた。
ファイルがない
eval便利。
各行を1行ずつ処理したい。
:rubydo eval $_
けど、classやmethod定義もワンライナーじゃないといけないから複数行まとめて処理したい場合はこっち。
:ruby eval(Vim::Buffer.current.length.times.inject("") {|res, i| res << Vim::Buffer.current[i+1] << "\n"})
keymapがめんどくさかった
nnoremap <leader>rb :ruby<Space>eval(Vim::Buffer.current.length.times.inject(''){<Bar>res,i<Bar>res<lt><lt><Space>Vim::Buffer.current[i+1]<lt><lt><Space>"<Bslash>n"})<Return>
ファイルがある
おまけ。
:!ruby %