LoginSignup
2
3

More than 5 years have passed since last update.

【vimめも】 14. grep

Last updated at Posted at 2018-04-21

vimでファイルの探索をしたい時ありますよね

そういうときに使うのがvimgrep

概要

  1. vimgrepにて検索 => 結果をquickfixという一覧に読み込み
  2. quickfixを表示
  3. 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めも】 13. プラグイン

次回: [【vimめも】 15. Vim scriptの基本]https://qiita.com/r12tkmt/items/aafe1406e5a0551c94b0)

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3