日々の記録簿

日々のできごとの記録

日記

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

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

関連記事

Multivariate Regression Analysis に関するメモ

Multivariate Regression Analysis (多変量回帰分析)に関するメモです。 多変量回帰にもいろいろあるようですが、ここでは「独立変数は同じだが従属変数が複数あるケース」を想 …

perl 5.22とlogwatch

perl 5.22にアップデートしたところ、logwatchに”Unescaped left brace in regex is deprecated, passed through in …

RによるPISAの分析(データの準備:続報)

三重大の奥村晴彦氏のホームページにて、RでPISAデータを読み込む方法(PISAデータを読む)が公開されていました。 こちらは、Rubyで読み込んでいるようです(ちなみに私はRubyはサッパリです・・ …

xinitrcの書き方

systemdが226にアップデートされて以降、gnome 3で妙なことが起こるようになりました。具体的には、geditやterminalが起動しないという現象です。 gdmを使ってログインすると問題 …

SPSSの「ケースの重み付け」とは何なのか

前回の続き。だいたい納得したのだが、SPSSの「ケースの重み付け」が一体何をしているのかもう少し調べてみたくなった。「ケースの重み付け」を設定したとき、分散や標準偏差はどうやって計算されているのだろう …