日々の記録簿

日々のできごとの記録

日記

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

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

関連記事

vimtexでuplatexがコンパイルできない(vimtex_compiler_latexmkの設定)

以前からLaTeXの執筆にはvimtexを使っていたのですが、2017年4月頃にアップデートしたらコンパイルできなくなったので原因を探ったときのメモ。 なお、「latexmkでコンパイルはできる」こと …

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

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

kernel 4.2でPT3を使う

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

VLCでカメラを使う(Arch Linux)

ちょっと詰まったのでメモ。 VLCを起動し、”Media”→”Open Capture Device”→”Capture mode&#822 …

awstatsでアイコンが表示されない

私は、アクセス解析にawstatsを利用しています。 なかなか便利なのですが、一つだけ気になっていたのが、アイコン画像が表示されないことです。ほとんど実害はないので半年ほど放置していましたが、この度、 …