2009年4月20日月曜日

Vimアドオン: grep.vim

前回前々回とmanpageview.vimを紹介したのでアドオン繋がりで今回はgrep.vim。

アドオンを一つだけ選ぶとすれば、このgrep.vimというくらい重宝しているアドオン。これさえあれば他はデフォルト機能だけでやっていけるというくらいの代物!

インストール

ここからDL。
DLしたgrep.vimを ~/.vim/plugin/ 以下に配置すれば完了。

検索対象ファイルに対して検索するには
:Grep search_phase search_file
再帰検索の場合は
:Rgrep search_phase search_path

結果がQuickfix(下10行が水平分割される)で表示され、目的の行で「Enter」を押せばその場所に跳べる(もちろんQuickfixリスト内もVim操作が可能なので、検索結果の最後に跳びたければ「G」でOK)。

しかし、これでは使い勝手がVimの内部コマンド(:grep)と検索結果がQuickfix以外さほど変わりない。
そう、Vimの基本ポリシー"カーソル下の単語に対して~"を満たしていないのだ。

キーマップ設定

そこでDLページの説明にもあるように、キーマップの設定を行う。
Vimでは当然既に通常キー及びそれらにShiftやCtrlを加えたキーバインドは埋まっている。なのでLinuxでは大して使用しないF3やF4を使うことにする。

~/.vimrcに以下を追加する。
nnoremap <silent> <F3> :Grep<CR>
nnoremap <silent> <F4> :Rgrep<CR>

すると、「F3」でカーソル下の単語(ここではsignal_names)が :Grepの第1引数に入り
Search for pattern: signal_names
Enter」でカレントDirの全ファイル(*)が第2引数に入る。
Search in files: *

これで、「F3」「Enter」「Enter」でカーソル下の単語をカレントDirの全ファイルから検索し、Quickfixリスト内に表示された結果から「Enter」で目的の場所へ跳べるようになる。


更に「C-W Enter」とすると水平分割で元のコードを残したまま目的の場所へ跳べる。



0 件のコメント:

コメントを投稿