日々の記録簿

日々のできごとの記録

日記

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

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

関連記事

nvim-Rの使い方(2018年度版)

nvim-Rの使い方(2019年度版)を書きました。2019年現在、nvim-completion-managerは更新されていません。 vimからRを使うNvim-Rですが、まだまだ深化しています。 …

全国学力・学習状況調査を悉皆で実施することの問題点

全国学力・学習状況調査(通称、全国学力テスト)は、対象となる全員を調査する調査方法(いわゆる悉皆調査)で実施されていますが、その問題点について整理しておきます。 悉皆調査の問題点はいろいろありますが、 …

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

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

awstatsでアイコンが表示されない

私は、アクセス解析にawstatsを利用しています。 なかなか便利なのですが、一つだけ気になっていたのが、アイコン画像が表示されないことです。ほとんど実害はないので半年ほど放置していましたが、この度、 …

vim-r-pluginの導入方法

vimからRを使う、vim-r-pluginの紹介。 まあ、vimにこだわりがないなら、RStudio使ったほうが幸せになれると思います。 環境は、Arch Linuxです。 インストール vim-r …