日々の記録簿

日々のできごとの記録

日記

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

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

関連記事

志水宏吉『学力格差を克服する』を読んだ!

タイトルのとおりだが、読んだ。冒頭11ページに「これまでの研究の総まとめ」が執筆の動機だとあるが、確かに著者のこれまでの研究が網羅されており、良くも悪くも集大成と呼べる書籍になっていると思う。 「良く …

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

Nexus 6にCyanogenmod 13.0をインストールしたメモです。軽く考えていたら、まさかの一日作業になってしまいました・・・。 以下、経緯を簡単に。 まず、通常のアップデートを行ったのです …

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

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

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

vimからRを使う場合、Nvim-Rが便利です。 以前にも紹介しましたが、設定をいくつか間違えていたので修正版です。 インストール まず、neovimをインストールする。このとき、deopleteを使 …

GComprisがUbuntu 20.04で動かない?

ちょっとしたメモ。 手元のパソコンにUbuntu 20.04をインストールして遊んでいたところ、GComprisのアイコンが表示されないという問題に遭遇。いろいろ調べてみたらQt系の問題のような気がし …