vimでファイルの探索をしたい時ありますよね
そういうときに使うのがvimgrep
概要
- vimgrepにて検索 => 結果をquickfixという一覧に読み込み
- quickfixを表示
- quickfixのリストから該当ファイルの該当行にジャンプ
検索の仕方
:vim[grep]/{pattern}/[g][j]{file}
:vim
というまさかの検索の名前が「vim」
素敵なExコマンド
g
オプションを付けると各行複数回マッチする
(なければ1度だけ)
j
オプションを付けると、quickfixのリストを更新するのみ
(なければリストを更新したあと、先頭のものにジャンプする)
{file}
はファイルを指定する
ワイルドカードも指定が可能**
すべてにマッチ。ディレクトリを再帰的にたどる*
すべてにマッチ
quickfixを表示
vimgrep
だけでは検索をしてquickfixを更新するだけなので
表示をさせないと結果がみえない。。:cw[indow] [count]
にて開く[count]
を指定しなければ10が、指定すればその値が表示するウィンドウの行数になる
毎回開くのめんどくさい・・・
autocmd MyAutoCmd QuickFixCmdPost * cw
これで、quickfixが更新されたら自動で開くようにできるMyAutoCmd
はautocmdのグループなので、各自の名称に書き換えてつかってください
quickfixのリストからジャンプ
<Enter>
でジャンプする
<C-w><Enter>
で新しいウィンドウを開いてジャンプする
その他
過去の検索したリストを再度表示したい・・・
そんなとき:col[der]
で1つ前の履歴へ切り替え:cnew[er]
で1つ後の履歴へ切り替え:chi[story]
で検索履歴を一覧で表示