Vim + tmux + pry / R
rubyとRを統合しながら開発しているので、分析時に使っているRStudio的な開発をVimとtmuxでやりたい!と思ったので設定しました。
+ Slimux
今まではjpalardy/vim-slimeを使っていたんですが、RStudioみたいに行単位で送りたいなー、と思って探していたらepeli/slimuxに行き当たりました。(設定次第でvim-slimeでも出来るのかもしれませんが…)
vim-slimeよりもconfigurableな感じで使いやすいです。
NeoBundle 'epeli/slimux'
map <C-c><C-c> :SlimuxREPLSendLine<CR>j
vmap <C-c><C-c> :SlimuxREPLSendSelection<CR>
標準の設定ではmap ...<CR>
ですが、僕は最後にj
を付けてます。これでCtrl押しながらc連打で各行をtmuxの画面に送れます。RStudioでcmd+enter
してるのと同じ感じですね。 ->追記:初回設定時に毎回j
が効いて鬱陶しいので回避方法募集中です。
v}<C-c><C-c>
してやれば複数領域の実行も出来るので良いですね!
体感としてはRStudioで実行するよりも軽量なので気に入りました。
バッファ単位で送り先のtmux panelも変えられるので、僕はtmuxを縦に二分割して片方をpry、もう片方にRを起動してgvimからCtrl+c
しながらコーディングしてます。
特にRはデータを直接確認しながら作業をすることが多いので、いちいちRStudioに画面を切り替えることなくvimから全て実行できる環境は快適です。
作者に感謝!
Slimux - tmux Plugin for Vim - Esa-Matti Suuronen
余談
僕はgvimをサブモニタに表示しながら使ってるんですが、
一般的にはtmuxのpanelを分割して使うものなんでしょうか。
何にせよvim, tmux, pryの組み合わせは便利です。
言葉だと余り便利さが伝わりにくいですが、僕は以下の動画を見て「使いたい!」と思いました。
Velvet Pulse » Improve Your Ruby Workflow by Integrating vim/tmux/pry
こっちもいい感じです。
▶ LA Ruby Conf 2013 - Impressive Ruby Productivity with Vim and Tmux by Chris Hunt - YouTube