日々の記録簿

日々のできごとの記録

日記

Nvim-Rの導入方法

投稿日:2016-06-01 更新日:

vimからRを使う、vim-r-pluginが、Nvim-Rに変わりました。

Neovimを使う前提ですが、tmuxを使わなくてもいいなど、いろいろ設定が楽になったと思います。

インストール

まず、neovimをインストール。クリップボードを使うのにxselも入れる。

sudo pacman -S neovim xsel

Rでは、colorout, setwidthのpackageを入れておけばOK。vimcomは不要になっている。

.Rprofileに以下を追記。

if(interactive()){
  library(colorout)
  library(setwidth)
}

下準備が済んだらNvim-Rの導入。自分は、vim-plugを使っている。init.vimは以下。補完に使うので、deopleteも入れる。

call plug#begin('~/.config/nvim/plugged')
Plug 'jalvesaq/Nvim-R'
Plug 'Shougo/deoplete.nvim'
call plug#end()

なお、deopleteはpythonが要るので、そちらも設定。

sudo pacman -S python-pip
sudo pip3 install neovim

あとは初回起動時に、:UpdateRemotePluginsが必要だと言われるので、そのとおりに。

設定

細かい使い方は、helpを見たほうがいい[:h Nvim-R]が、関連する箇所の自分のinit.vimは以下。

let maplocalleader = ","

" deoplete
" Use deoplete.
let g:deoplete#enable_at_startup = 1
" Use smartcase.
let g:deoplete#enable_smart_case = 1
" for Nvim-R
if !exists('g:deoplete#omni_patterns')
    let g:deoplete#omni_patterns = {}
endif
let g:deoplete#omni_patterns.r = '[[:alnum:].\\]\+'

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

let R_nvimpager = "horizontal"

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

これで

nvim example.R

とすれば、vim-r-pluginと同じような環境になる。

基本的な使い方

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

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

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

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

関数やデータフレームの変数名はdeopleteが補完するが、引数の方が補完されないので[Ctrl-X Ctrl-A]で補完する必要がある。

インストールが楽になったし、neovim内で完結するので、操作が楽になった。neovimのほうが設定ファイルが簡素になるのも利点。

スポンサーリンク

スポンサーリンク

-日記

執筆者:


comment

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

関連記事

ICU 59.1にしたらintsvyが動かない

状況 ICUを59.1にアップデートしたらintsvyが動かなくなった。他にもいくつかRのlibraryが動いていない気がする。ちなみに環境はArch Linux。 対策 AURからicu58をインス …

全国学力・学習状況調査の都道府県別平均正答率csvファイル

ごく稀に必要になることがあるのですが、どこにあったっけ・・・と探すのがめんどくさいので、アップロードしてしまうことにしました。 全国学力・学習状況調査の都道府県別平均正答率csvファイルです。ただし、 …

RからMplusを使う(MplusAutomation)

Mplusという統計ソフトウェアがあります。高機能なのですが、いかんせんエディタが残念仕様で使いづらい・・・。 と思っていたのですが、RからMplusを操作するMplusAutomationというパッ …

Nexus 6にCyanogenmod 12.1をインストールした!

Nexus 6に、Android 5.1.1ベースのCyanogenmod 12.1をインストールしました。 と言っても、Cyanogenmodアップデートを使っていれば、自動的に12.1になってしま …

knitrで複数頁に渡る表を作成する

knitrで複数頁に渡る表を作成する必要があったので、メモです。 と言っても、longtable をセットするだけなのですが。 仮に、longtable.Rというファイルがあったとします。データはTI …