タイトルにはgrepと書きましたが、今回はgrepの代わりに、より高速なThe Silver Searcherを使います。
もちろん、NERDTreeは既に使えるという前提です。
1. The Silver Searcherのインストール
$ brew install the_silver_searcher
The Silver Searcherについては、以下の記事を参考。
ackを捨てて、より高速なag(The Silver Searcher)に切り替えた
2. VimからThe Silver Searcherを使えるようにする
ag.vimというプラグインを利用します。.vimrc
に以下を追記して、:NeoBundleInstall
NeoBundle 'rking/ag.vim'
これで、vimから:Ag [options] {pattern} [{directory}]
で、The Silver Searcherが使えるようになります。
3. NERDTreeのmenuにgrepを追加する
grep_menuitem.vimというプラグインを利用します。
grep_menuitem.vimを.vim/bundle/nerdtree/nerdtree_plugin/
以下に置く。
これで、NERDTreeのmenuにgrepが追加されます。
4. NERDTreeでThe Silver Searcherを使う
2でVimからThe Silver Searcherを使えるようにし、3でNERDTreeでgrepを使えるようにしたので、次はNERDTreeでThe Silver Searcherを使えるようにします。
具体的には、3で追加したgrep_menuitem.vim
を以下のように修正。
grep_menuitem.vim
" exec 'silent grep -rn ' . pattern . ' .' "変更前
exec 'silent Ag ' . pattern . ' .' "変更後
これで、NERDTreeでgrepの代わりにThe Silver Searcherが使えるようになりました。
特にファイル数の多いディレクトリ以下を検索するときは、grepよりThe Silver Searcherの方が圧倒的に早いです。