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]
で検索履歴を一覧で表示
次回: [【vimめも】 15. Vim scriptの基本]https://qiita.com/r12tkmt/items/aafe1406e5a0551c94b0)