Gitのgrep
サブコマンドは通常Gitリポジトリーでしか使えない。しかし--no-index
オプションを付けると、Gitリポジトリーではないディレクトリーでも検索できる(もちろんGitリポジトリーでも)。Vimからももちろん使えるので、ackちょっと遅い、ag入れるのが面倒くさい、MSYS上で使ってるとjvgrepの出力が稀におかしい、などの理由でgrepに戻ったりしてる人はgit grep
を使うのも良さそう。
set grepprg=git\ grep\ --no-index\ -I\ --line-number
grepformat
を編集しないで済ませるためには--line-number
オプションを追加して、行番号を表示させる必要がある。僕はバイナリ・ファイルを無視する-I
オプションも合わせて追加しておいた。パフォーマンスをあげるために--no-color
オプションを付けるのも良さそう。
Gitのgrep
サブコマンドだと、グロブの指定をせずにデフォルトで再帰的に下層ディレクトリーを検索してくれるのも楽。検索対象を絞りたい場合はglob(7)に従った形で指定したり、--max-depth
オプションを追加して制限したりするだけなので、わかりにくいということはなさそう。agのオプションは覚えられる気しないけど、これなら大丈夫っぽい。