vimshellでVimでの開発をシームレスに行う その1
vimshellとはVimプラグインのひとつであり、Vim上でその名の通りshellを使えるようにするプラグインである。
作者はneocomplcacheでも有名なVimmerのShougoさんであり、その他にもとても優秀なプラグインを開発されております。
今回はvimshellを使うことにより、何が素晴しいのかを焦点にあてて説明したいと思います。
vimshellを使用するために
当然プラグインをインストールする必要があります。
ここでは細かい説明は省くとするのでインストールは各自で調べてみてください。
また、vimshellの動作にはvimprocが必須です。こちらも合わせて導入してください。
vimshellと連携するプラグイン
vimshellはそれ単体でも非常に有用ですが、今回はそれだけではなくneocomplcacheとunite.vimもインストールしているという前提で進めます。
vimshellで使用するコマンドをインストールしておく
当然vimshellは通常のshellと同じように使う事が出来るので使用するためにはあらかじめコマンドたちをインストールしておきます。
私がWindowsなので今回はMinGWを使用しています。当然CygwinだろうとSystem32のコマンドを使用する事も出来ます。
前提としてコマンドを使用する場合はコマンドへのパスが通っている必要があります。
:echo $PATH
vimshellを起動する
とりあえずvimshellを起動してみましょう。
:VimShell
と、入力すれば上記のような画面になると思います。
ここでとりあえず"cd"コマンドを使ってディレクトリを移動します。
もしここでneocomplcacheがインストールされていれば上記のように次々とディレクトリが補完されたと思います。
これはとても便利な機能です。
こういう機能を持つshellはほとんどないはずです。私は使った事がないのでわかりませんが、あるとすればzshくらいでしょうか。
これだけでもvimshell+neocomplcacheが強力だという事がわかってくると思います。
vimshellとunite.vimでヒストリ補完
vimshellにはunite.vimがインストールされていれば可能となるヒストリ補完機能があります。
おもむろにvimshellのプロンプト内で
これまで入力してきたコマンドのヒストリが表示されたと思います。
これはunite.vimの機能でvimshellのhistoryをsourceとして使用し、一覧としています。
unite.vimに関して今回の本題ではないのでここではsourceに関して説明はしません。
このヒストリを使用して補完し、よりスムーズなコマンド入力が可能となります。
ヒストリ内の移動は今までと同じように
いつも同じようなコマンドを打ちまくるアナタにオススメです。
vimshellの設定とマッピング
非常に便利に使う事が出来るvimshellですが、とりあえず_vimrc(.vimrc)あたりにでも便利なマッピングを書いておきましょう。
よりスムーズにvimshellを呼びだす事が出来るようになりシームレスな開発が可能になります。
" vimshell setting let g:vimshell_interactive_update_time = 10 let g:vimshell_prompt = $USERNAME."% " " vimshell map nnoremap <silent> vs :VimShell<CR> nnoremap <silent> vsc :VimShellCreate<CR> nnoremap <silent> vp :VimShellPop<CR>
上記ふたつの設定は好みですが、"g:vimshell_prompt"の設定はWindows用なので注意してください。
マッピングは単にvimshellを呼び出しやすいようにするだけのものです。
キーは各自使い易くて他のマッピングの邪魔にならないようにするように。
とりあえず":VimShellPop"は手軽に呼び出しが出来てすぐ閉じたり出来るので設定していると便利です。
まだまだ便利なvimshell
ここまでだけでもかなり便利という事がわかったと思います。
特に補完を利用したneocomplcacheとunite.vimとの相性が抜群でこれだけでも他のshellを圧倒しています。
しかしこれで終わらないのがvimshellです。
次回は更にプログラムの実行とデバッキングを行ないたいと思います。