Vimメモ : ag.vimでVimからag(the_silver_searcher)を利用して検索
ag(the_silver_searcher)
ag
とはgrep
やack
のようにパターン検索できるコマンドで、他のコマンドに比べると検索が速いのが利点。
例えば、下記コマンドだとカレントディレクトリ以下から再帰的にgem
というパターン(大文字小文字無視)を検索できる。
$ ag -i gem .
インストール方法
ag
のインストール方法は下記リンクを参照。
GitHub - ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
ag.vimのインストール
NeoBundleの場合は下記行をvimrc
に追加。
もちろんag
を使うのでag
はあらかじめインストールしておく必要がある。
NeoBundle 'rking/ag.vim'
ag.vimの使い方
基本的な使い方はVimのコマンドラインで下記コマンドを入力する。
:Ag [options] {pattern} [{directory}]
例えば、
:Ag -i gem .
を入力すると検索結果が分割されたウィンドウに表示される。
検索結果が表示されたQuickfixウィンドウで結果の行を選択してキーを押したときの挙動は以下の通り。
キー | 挙動 |
e | ファイルを開く(Quickfixを閉じる) |
o | ファイルを開く(Quickfixは閉じない) |
go | ファイルを開くが、フォーカスはQuickfix |
t | ファイルを新しいタブで開く |
T | ファイルを新しいタブで開くが、フォーカスはQuickfix |
h | ファイルを水平分割して開く |
H | ファイルを水平分割して開くが、フォーカスはQuickfix |
v | ファイルを垂直分割して開く |
gv | ファイルを垂直分割して開くが、フォーカスはQuickfix |
q | Quickfixを閉じる |
Uniteを使う方法
ちなみにUniteをインストールしていればUnite grepにag
を使うこともできる(こっちの方が便利かも)。
agとUnite.vimで快適高速grep環境を手に入れる · THINKING MEGANE
を参考にvimrc
に下記行を追加。
,g
、,cg
、,r
キーを押せば検索、検索結果の再呼び出しなどができる。
" insert modeで開始 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> ,cg :<C-u>Unite grep:. -buffer-name=search-buffer<CR><C-R><C-W> " 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
- 作者: DrewNeil,新丈径
- 出版社/メーカー: KADOKAWA / アスキー・メディアワークス
- 発売日: 2014/01/28
- メディア: Kindle版
- この商品を含むブログ (3件) を見る