日々の記録簿

日々のできごとの記録

日記

Nvim-Rの導入方法(その2)

投稿日:2017-01-13 更新日:

vimからRを使う場合、Nvim-Rが便利です。

以前にも紹介しましたが、設定をいくつか間違えていたので修正版です。

インストール

まず、neovimをインストールする。このとき、deopleteを使うなら、python-neovimを入れるといい。依存関係でneovimもインストールされる。また、クリップボードを使うためにはxselも必要。

sudo pacman -S python-neovim xsel

続いてNvim-Rの導入。自分は、vim-plugを使っている。

補完のためにdeoplete、構文チェックのためにneomakeを入れる。

init.vimは以下。

call plug#begin('~/.config/nvim/plugged')
Plug 'jalvesaq/Nvim-R'
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'neomake/neomake'
call plug#end()

設定

細かい使い方は、helpを見たほうがいい[:h Nvim-R]が、関連する箇所の自分のinit.vimは以下。以前のものは、deopleteの設定に問題があった。またnvim-rは、insert modeでもRにコマンドを送れるように設定した。

let g:maplocalleader = ","

" deoplete
" Use deoplete.
let g:deoplete#enable_at_startup = 1
" Use smartcase.
let g:deoplete#enable_smart_case = 1
" for Nvim-R
let g:deoplete#omni#input_patterns = {}
let g:deoplete#omni#input_patterns.r =
            \ '\w+|[^. \t]->\w*|\w+::\w*'

" nvim-r
let g:R_vsplit = 1
let g:R_assign = 0

let g:R_nvimpager = "horizontal"

let g:R_objbr_place = "console,right"
let g:R_objbr_opendf = 0

let g:R_insert_mode_cmds = 1

" neomake
autocmd! BufWritePost * Neomake
let g:neomake_r_enabled_makers = ['lintr']

なお、neomakeは現在(2017年1月)のところ、lintrに対応していない。
ありがたいことに、すでにコードを書いてくれた人がいるので、githubからr.vimをダウンロードさせてもらう。

あとはr.vimをneomake/autoload/neomake/makers/ft/に配置すればよい(他によい方法があるような気もするが・・・)。

基本的な使い方

[,rf]でRが起動し、[,ro]でオブジェクトブラウザが起動する。

Rの終了は[,rq]で、現在の行を実行するのが[,l]となる。Visual Blockで囲んで[,l]すれば、その範囲がRに送られる。

[,rs]でカーソル上のsummaryを見たり、[,rp]でprintしたり、[,rh]でhelpを見たりできる。

Rのlm関数のhelpが見たければ[:Rhelp lm]、実行中のRを停止するには[:RStop]。

保存するたびに、lintrによる構文チェックが実行される。

vim + tmuxで使う場合

基本的には、vim-r-pluginと同じ要領で使える。ただし、tmuxへコマンドを送るために、.vimrcに以下の追記が必要。

" tmux config
let R_in_buffer = 0
let R_applescript = 0
let R_tmux_split = 1

また、”+clientserver”に対応したvimを使うために、わざわざvimを再コンパイルする必要はなく、gvimをインストールすればよかった。

現時点では、vimとneovimのどちらがよいかと聞かれると、neovimだと思う。vimの場合、tmuxの設定・インストールの手間がかかる。また、tmuxを経由しているため、R側の操作がどうしても面倒になる(tmuxを扱い慣れていれば違うのかもしれないが)。

※2017/01/18追記
setwidthと.Rprofileに関する記述を削除。

※2017/05/03追記
nvim-Rか、deopleteかいずれかのアップデートが原因だと思うが、deopleteによる補完が効かなくなった。以前の設定に戻したら動いた。

スポンサーリンク

スポンサーリンク

-日記

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

X1 carbon gen 10でxf86-video-intelをインストールするといろいろおかしくなる 

タイトルで終わっているが、Thinkpad X1 carbon (gen 10)でxf86-video-intelをインストールしてはいけない。Google Chromeが固まる、VLCで動画が再生で …

Rで日本の校区地図を描く

Rで日本の校区地図を描く方法です。 データの準備 国土数値情報 ダウンロードサービスより、校区地図のもとになるデータ(shapeファイル)をダウンロードする。 データは、リンク先ページの、JPGIS2 …

Rを勉強するためにいろいろ寄り道をしていた

Rをもっと勉強したいなと思って、『R言語徹底解説』を買ってみました。・・・が、ちんぷんかんぷん。クラスとか、オブジェクト指向とか、遅延評価とか、さっぱりわかりません。 これはいかんと思い、ここ2ヶ月ほ …

サイトをSSLへ移行してみた!

今、話題のLet’s Encryptを利用して、このサイトをSSLに移行してみました。 参考にしたのは、次のページです。 Arch Wiki Let’s Encrypt さくらのレンタルサ …

Vim-R-Pluginでエラーがでた

私は、Rで分析をするときは、Vim-R-pluginを使用しています。 RStudioに比べて不便な部分もありますが、Vimに慣れた身としては、やっぱりエディタはVimが使いたいので・・・。 そんなV …