日々の記録簿

日々のできごとの記録

日記

vim-r-pluginの導入方法

投稿日:

vimからRを使う、vim-r-pluginの紹介。

まあ、vimにこだわりがないなら、RStudio使ったほうが幸せになれると思います。

環境は、Arch Linuxです。

インストール

vim-r-pluginを使用するには、いくつか条件がある。

まず、vimがコマンドサーバとして動作可能であること。これは、[:version]で、”+clientserver”になっていればOK。

ただ、Arch Linuxの場合、デフォルトでは+になっていないため、PKGBUILDを書き換えて、自分でコンパイルする必要がある。

ソースの取得は、yaourtを使うのが簡単。

yaourt -G vim
cd vim
vi PKGBUILD

“disable-gui”の部分を書き換え。

#    --disable-gui \
   --enable-gui=auto \

あとは、makepkgして、インストール。

makepkg -s
sudo pacman -U vim**** vim-runtime****

次に、tmuxがインストールされていること。

sudo pacman -S tmux

tmuxの設定例については、ここを見るといいと思う。

これに加えて、Rで、vimcom, colorout, setwidthなどのpackageをインストールしておく必要がある。インストール方法は、それぞれリンク先を参照。

.Rprofileに以下を追記。

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

ここまで済んで、ようやくvim-r-plugin自体のインストール。

自分は、vim-plugを使っている。.vimrcは以下。補完に使うので、neocompleteも入れる。

call plug#begin('~/.vim/plugged')
Plug 'vim-scripts/Vim-R-plugin'
Plug 'Shougo/neocomplete'
call plug#end()

設定

細かい使い方は、helpを見たほうがいい[:h vim-r-plugin]が、関連する箇所の自分の.vimrcは以下(さっきの続き)。

let maplocalleader = ","

" NeoComplete
" Use neocomplete.
let g:neocomplete#enable_at_startup = 1
" Use smartcase.
let g:neocomplete#enable_smart_case = 1
" Set minimum syntax keyword length.
let g:neocomplete#sources#syntax#min_keyword_length = 3
let g:neocomplete#lock_buffer_name_pattern = '\*ku\*'

" R (plugin: vim-R-plugin)
if !exists('g:neocomplete#sources#omni#input_patterns')
    let g:neocomplete#sources#omni#input_patterns = {}
endif
if !exists('g:neocomplete#sources#omni#functons')
    let g:neocomplete#sources#omni#functions= {}
endif
let g:neocomplete#sources#omni#input_patterns.r = '[[:alnum:].\\]\+'
let g:neocomplete#sources#omni#functions.r = 'rcomplete#CompleteR'

" vim-r-plugin
let vimrplugin_vsplit = 1
let vimrplugin_assign = 0

let vimrplugin_vimpager = "horizontal"

let vimrplugin_objbr_place = "console,right"
let vimrplugin_objbr_opendf = 0

さらに.bashrcに

function tvim(){ tmux new-session "vim --servername VIM $@" ; }

と書いておけば、

tvim example.R

とすることで、tmuxとvimが連携した状態で開始できる。

基本的な使い方

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

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

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

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

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

なお、tmuxのプレフィックスキーを[Ctrl-A]に割り当ててしまうと、引数補完が[Ctrl-X Ctrl-A Ctrl-A]になってしまう。

これはめんどくさいので、tmuxのプレフィックスキーは[Ctrl-Space]にしている。

最後に、vim本の紹介。基本文献だと思うけど、初心者には勉強になった。

スポンサーリンク

スポンサーリンク

-日記

執筆者:


  1. 通りすがり より:

    役に立ちました。ありがとうございます。

comment

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

関連記事

ThinkPad X250 のトラックポイントが使いにくい!

X250を1ヶ月ほど使っていますが、最近いまいち旧機種に比べて使いにくいと思うようになりました。 で、気づいたのが、X250はトラックポイントの反応が鈍いということ。旧機種に比べて、操作に力が要ります …

デスクトップ環境をXfceに変更してみた!

なんとなくGnomeやめようかな・・・と思って、デスクトップ環境をXfceに変更してみました。 ついでに、NetworkManagerとか、Ibusとか、Evinceとか、代替する方法あるのかなあ?・ …

棒グラフとヒストグラムの違い

棒グラフとヒストグラムの違いがわからないというコメントを受けることが多いので、どう説明したものかと思っていたのですが、次のような図を書いたら、理解してくれる人が多いような気がしたのでご紹介。 まずデー …

systemdを245にアップデートすると、netctlが動かない?

焦ったけど、バグレポートが出ていた上に、末尾に修正方法が書いてあった。 sudo netctl reenable <your-profile-name> を実行すればok。ログを見ると、s …

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

2019年度のNvim-Rの設定。 ncm2とncm-Rによる補完 ncmがncm2になったので、それに合わせて乗り換え。dplyrの補完にも対応していて便利。ncm-Rを入れれば補完が効くようになる …