vimでgrep

vimを使っている人はたまに見かけるがメインエディタにしている人は少ない。
理由を聞くと「秀○やmi○esとかのglobal検索が便利過ぎてやめられない」と言ってました。
ちょっと待ってよ〜orz!
vimでもできますよー!って言うことで解説。


●vim7内部grepを使う
:vimgrep /hoge/ **/*


この場合、(vimの)カレントディレクトリ下(サブフォルダも含む)の全てのファイルから hoge を探します。(:help :vimgrep, :help file-searching)
検索終了後に
:copen
と入力すれば(vimとしての)別窓に検索結果一覧が現れます。(:help quickfix)
検索結果をダブルクリックもしくはリターンキーを押下すれば別窓に該当ファイルを開いて検索一致場所を表示してくれます。


閉じるときは
:cclose
です。


検索後にいちいち :copen するのが面倒な方は .vimrc(_vimrc)に以下の一文を記述しておきましょう。(from VimWiki)
autocmd QuickfixCmdPost make,grep,grepadd,vimgrep copen

autocmd QuickfixCmdPost * copen

↑(2009/03/26 修正)


ちなみに(vimの)カレントディレクトリの移動は
:cd ほにゃらら
で出来ます。(:help :cd, :help :pwd)


次回は外部grepの設定&使い方、svnのローカル作業コピー下での効率的なgrep方法について説明する予定です。