vimでRの開発環境を整えたい
いやRstudio使えば良くない?
背景
- できるだけvim/ターミナル上で完結して操作がしたい
- RAやバイトではpythonを使い、他にもhtml, javascript, rustをしばしば扱う
- 言語ごとにエディターを使い分けるのが面倒だしクールだとも思えない
- vscodeはRの機能が貧弱っぽい
環境
入れたもの
Nvim-R: R用プラグイン。バッファでRを立ち上げてコードを実行できるので簡易Rstudioが作れる
R_assign
などを設定することでRstudioよりも設定を最適化できる(と思う)- bufferの画面が小さくて気になる場合ははtmuxを使って別のsessionでコンソール開くこともできる。ディスプレイがないとちょっと不便
- Rhelpですぐ関数のdocumentが見れるのも嬉しい
lintr: Rのlinterパッケージ。下のALEと組み合わせて使う
- 個人的にはRmdからpdfファイルを作るときに重宝する。最長文字数制限がないと簡単にコードがはみ出てしまうという問題がある
ALE: 非同期型のlinterプラグイン。syntasticでも良いと思うが、新しいもの好きなのでこちらを採用している。
今のところ結構快適。スペースで行単位の実行ができたり、パラグラフ単位や選択範囲での実行など色々調整できるのが良い。
dein-lazy.toml
にはこんな感じで設定している:
[[plugins]] repo = 'jalvesaq/Nvim-r' hook_add = ''' let g:R_assign = 3 " _ を<-に変換 let g:R_in_buffer = 0 " tmuxのセッションにコンソールを開く let g:R_insert_mode_cmds = 1 let g:r_indent_align_args = 0 let g:R_parenblock = 0 " スペースで行・選択範囲を実行 vmap <Space> <Plug>RDSendSelection nmap <Space> <Plug>RDSendLine ''' on_ft = ['R', 'r', 'rmd']
今後やりたいこと
- deoplete周りとの補完の共存。まあ現状そこまで優先度合いが高そうでもない