VimShell : インタラクティブな開発環境を整える

vim で 作業をしている場合によくあるシチュエーションは, 現在,書いているコードを, 対話式のシェルに流しこみたいという状況です.

ココらへんの要求は特に, Rstudio を使用していると思うことです. あれ便利すぎます.

何がやりたいかというと, 各業の実行をそのままテストしたいわけです. このような需要を叶えるために色々さまよっていたのですが, 結論として vimshell が一番シンプルな解決策な気がしています.

導入

vim shell の導入は Neobundle を使用していても 多少, 作業が必要です.:

Neobundle 'Shougo/vimproc.vim'
Neobundle 'Shougo/vimshell.vim'

ただし,*nix系では, vimproc.vim を導入するために, コンパイルが必要です.

$ cd .vim/bundle/vimproc/
$ ls
$ make -f make_unix.mak

この作業を終えたら, vim を再起動して, 以下のコマンドを打ち込みます:

:VimShell

なんか,出てきたら,とりあえず導入が確認できると思います.

使い方 (本当に基本的な部分)

ここでは私の個人的に好きな使い方について紹介します. 上記のコマンドを使用するとまあ, 要するに vim を使って shell を動かすことができます. これだけでも十分, 幸せなわけですが, 私のやりたい開発環境は, 片方で, コードを書いて, もう片方で, 逐一その結果を確認したいのです. このような機能も vimshell には付いていて (Shougoさんのプラギンって,基本,ほしい機能があるから助かります. 情報集めるの大変だけど) 以下のコマンドを入力します.:

:VimShellInteractive

デフォルトで拡張子判断をして適切なshellを開いてくれるようです. あとはウインドウを移動して, スクリプトを書いて,命令を送ればいいわけです. shell に命令を送るには以下のコマンドを使用します.:

:VimShellSendString

すごいですよね. screen とかもう,いらねーんじゃないかって気分です.

キーバインドの設定

さて, このままでも十分やりたいことはできるようになっているわけですが, 少々バインド長いんで, 多少設定を行いましょう. 一応, 私の備忘録として設定をメモしておきます.:

nnoremap <Space>d :VimShellInteractive<CR>
nnoremap <Space>i :VimShellInteractive ipython<CR>
nnoremap <Space>s :VimShellSendString<CR>
vmap <Space>s :VimShellSendString<CR>

例えば私の場合, 基本的には python を統計,データ整形目的で使用することが多いのですが, そうすると python ではなく, ipython を使用したい時も多いんですよね. ですので, ipython だけは別の設定を記述しました.