メモ:vimgrep
VimでGrepする覚え書き 1/2 「内部grep」編 - ナレッジエース
Tanablog: Vim7 内蔵の grep を使う内部grep
Vim7からは標準でgrep機能が備わっています。
以下のようにコマンドを実行すると便利。
:vim[grep] /hogehoge/j *.txt | cwこれでカレントディレクトリにある全ての.txtファイルから「hogehoge」を検索し、マッチした結果がQuickFixに表示されます。
ちなみに「j」オプションはマッチしたファイルへ自動的にジャンプしない指定、そして「| cw」はマッチしたファイルがあった場合にQuickFixを開きます。
毎回「| cw」を付けるのが面倒な場合は、以下のautocmd設定で自動化することも可能。
au QuickfixCmdPost vimgrep cwQuickFixの主な操作は、以前にも一度書きましたが以下の通り。
:cn #次のエラー箇所へジャンプ
- cp #前のエラー箇所へジャンプ(
- cNでも同じ)
:ccl #QuickFixを閉じる
再帰的に検索するには「**」を使います。
:vimgrep /hogehoge/ **/*.txtこうすると今度はカレントディレクトリ以下のディレクトリ内にある.txtファイルも検索対象になります。
さて、このように大変便利なvimgrepですが、ひとつ注意すべきはこのコマンドを実行すると検索対象のファイルが全てMRUに反映されてしまうということです。
MRU(最近使ったファイル一覧)のプラグインを使われている方はご注意ください。
vimgrep をデフォルトの grep プログラムとして使用する
:grep を :vimgrep のエイリアスにするには、gvimrc に以下の行を追加する。
:set grepprg=internal