Hatena::ブログ(Diary)

Ideals and Reality このページをアンテナに追加 RSSフィード Twitter

2011-08-28

vimshellでVimでの開発をシームレスに行う その1

vimshellとはVimプラグインのひとつであり、Vim上でその名の通りshellを使えるようにするプラグインである。

作者はneocomplcacheでも有名なVimmerShougoさんであり、その他にもとても優秀なプラグインを開発されております。

今回はvimshellを使うことにより、何が素晴しいのかを焦点にあてて説明したいと思います。


vimshellを使用するために

当然プラグインインストールする必要があります。

ここでは細かい説明は省くとするのでインストールは各自で調べてみてください。

vimshell

また、vimshellの動作にはvimprocが必須です。こちらも合わせて導入してください。

vimproc


vimshellと連携するプラグイン

vimshellはそれ単体でも非常に有用ですが、今回はそれだけではなくneocomplcacheunite.vimインストールしているという前提で進めます。

neocomplcache

unite.vim


vimshellで使用するコマンドをインストールしておく

当然vimshellは通常のshellと同じように使う事が出来るので使用するためにはあらかじめコマンドたちをインストールしておきます。

私がWindowsなので今回はMinGWを使用しています。当然CygwinだろうとSystem32のコマンドを使用する事も出来ます。

前提としてコマンドを使用する場合はコマンドへのパスが通っている必要があります。

:echo $PATH

と、入力してVim環境変数$PATHに実行したいコマンドへのパスを確認しておきます。

問題なければ準備は完了です。


vimshellを起動する

とりあえずvimshellを起動してみましょう。

:VimShell

f:id:alwei:20110829010830p:image

と、入力すれば上記のような画面になると思います。

ここでとりあえず"cd"コマンドを使ってディレクトリを移動します。

f:id:alwei:20110829010833p:image

もしここでneocomplcacheインストールされていれば上記のように次々とディレクトリが補完されたと思います。

これはとても便利な機能です。

<C-n>と<C-p>と入力すれば補完されたディレクトリを移動し、"/"と入力すればそのディレクトリに入る事が出来ます。

こういう機能を持つshellはほとんどないはずです。私は使った事がないのでわかりませんが、あるとすればzshくらいでしょうか。

これだけでもvimshell+neocomplcacheが強力だという事がわかってくると思います。


vimshellとunite.vimでヒストリ補完

vimshellにはunite.vimインストールされていれば可能となるヒストリ補完機能があります。

おもむろにvimshellのプロンプト内で<C-l>と入力してみましょう。

f:id:alwei:20110829010832p:image

これまで入力してきたコマンドのヒストリが表示されたと思います。

これはunite.vimの機能でvimshellのhistoryをsourceとして使用し、一覧としています。

unite.vimに関して今回の本題ではないのでここではsourceに関して説明はしません。

このヒストリを使用して補完し、よりスムーズなコマンド入力が可能となります。

ヒストリ内の移動は今までと同じように<C-n>、<C-p>で行います。

いつも同じようなコマンドを打ちまくるアナタにオススメです。


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

ここまでだけでもかなり便利という事がわかったと思います。

特に補完を利用したneocomplcacheunite.vimとの相性が抜群でこれだけでも他のshellを圧倒しています。

しかしこれで終わらないのがvimshellです。

次回は更にプログラムの実行とデバッキングを行ないたいと思います。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証