Vim

VimのNERDTree上でgrepする

More than 3 years have passed since last update.

タイトルには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が追加されます。

スクリーンショット 2014-12-27 21.10.20.png


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の方が圧倒的に早いです。


参照