日々の記録簿

日々のできごとの記録

日記

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

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

関連記事

大規模調査の分析でSPSSの「ケースの重み付け」を使う場合の留意点

前回SPSSの「ケースの重み付け」を調べて満足していたのだが、Rのコードを見ていてとんでもないことに気づいた。 weighted.se <- function(x, w, na.rm = FAL …

VLC3.0.4-3でTSファイルが再生できない【解決】

タイトルの通りですが、いつの間にかVLC(3.0.4-3)でTSファイルが再生できなくなっていました。OSはArch Linuxです。依存関係でダウングレードもできない模様。 ググってみると、【Mpe …

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

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

kernel 4.2でPT3を使う

kernel 4.2にアップグレードした際に、pt3のlinuxドライバのビルドに失敗しました。 とりあえずkernelをダウングレードして凌いでいたのですが、対処方が記載されたサイトがあったので、情 …

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

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