[vim]unite.vim + ag (the_silver_searcher) でファイル検索を効率化する


[まとめ] 現在開催中のKindleセール情報はこちら

unite.vimとag(the_silver_searcher)を使ってファイル検索できるようにしたらvim環境が非常に快適になりました。

もっと早く設定すべきでした。

  • agインストール
# mac
brew install the_silver_searcher

# cent
rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum install the_silver_searcher
  • unite.vimインストール
# ~/.vimrc

NeoBundle 'Shougo/unite.vim'
NeoBundle 'Shougo/vimproc', {
      \ 'build' : {
      \     'mac' : 'make -f make_mac.mak',
      \     'unix' : 'make -f make_unix.mak',
      \    },
      \ }
  • grepにagを使うように設定
# ~/.vimrc

"------------------------------------
" Unit.vim
"------------------------------------
" 入力モードで開始する
let g:unite_enable_start_insert=1
" 大文字小文字を区別しない
let g:unite_enable_ignore_case = 1
let g:unite_enable_smart_case = 1
" grep検索
nnoremap <silent> ,g  :<C-u>Unite grep:. -buffer-name=search-buffer<CR>
" ディレクトリを指定してgrep検索
nnoremap <silent> ,dg  :<C-u>Unite grep -buffer-name=search-buffer<CR>
" カーソル位置の単語をgrep検索
nnoremap <silent> ,cg :<C-u>Unite grep:. -buffer-name=search-buffer<CR><C-R><C-W><CR>
" grep検索結果の再呼出
nnoremap <silent> ,r  :<C-u>UniteResume search-buffer<CR>
" unite grep に ag(The Silver Searcher) を使う
if executable('ag')
  let g:unite_source_grep_command = 'ag'
  let g:unite_source_grep_default_opts = '--nogroup --nocolor --column'
  let g:unite_source_grep_recursive_opt = ''
endif

agとUnite.vimで快適高速grep環境を手に入れる – Thinking-megane」の記事を参考にさせていただきつつ、ディレクトリを指定してgrep検索するための「,dg」ショートカットを追加しました。

コマンド 説明
,g パターンを入力して検索(カレントディレクトリ以下)
,dg ディレクトリを指定してからパターンを入力して検索
,cg カーソルにある単語で検索
,r 同じ条件の検索結果を再表示

非常に快適になるのでオススメです!

参考

[まとめ] 現在開催中のKindleセール情報はこちら