追記) vimgrepよりもめちゃくちゃはやい
agというプラグインがあるらしい。
agでvimの検索関連を高速化 - Qiita
インストールもbrewから可能。試したら、めちゃくちゃはやいっ!!
結果出力はquickfixを使っているのでvimgrep + quickfixと表示は変わらない。ぜひ、お試しあれ!
コマンドラインから実行
ag hoge
vimで利用
:Ag hoge
ctrlp.vim(高速ファイル検索) と組み合わせると更にvim環境が便利になる。
インストール方法は以下を参照。
ctrlp.vimを試してみる - BAKUNOTE
以下は古い内容。参考までに。。
vimgrep + quickfixを使うと、特定ディレクトリ以下でgrepを行い、検索結果リストより
目的箇所にジャンプができる。
vimgrepの書式
vimgrepはvimと省略して実行できる。
:vim[grep] {pattern} {file} ...
カレントバッファに対してvimgrepする
カレントバッファ:今開いているファイルを意味する。
/の代わりに使う。
" カレントバッファを対象にする :vim {pattern} %
複数ファイルを対象にしてgrep
" カレントディレクトリ以下のあらゆるファイルを対象にする :vim {pattern} ** " app/views以下のerbファイルを対象にする :vim {pattern} app/views/**/*.erb " appディレクトリ内でインデックスされている.htmlファイルを対象にする :vim {pattern} `git ls-files app/**/*.html`
検索結果一覧を表示し、目的の箇所へジャンプ
Quickfixと組み合わせて使うとgrep結果を別画面で一覧で表示できるようになる。
この画面はvim用語ではquickfix-windowと呼ばれる。
cwは「cwindow」の略。
:vim {pattern} {file} | cw
自動的にquickfix-windowを開く
「| cw」と毎回うつのが面倒な場合はvimがQuickfixをフックするイベントを用意しているのでそれを使う。
autocmd QuickFixCmdPost vimgrep cwindow '下記のとおりにすると:grepや:Ggrepでも自動的にquickfix-windowを開くようになる。 autocmd QuickFixCmdPost *grep* cwindow