Help us understand the problem. What is going on with this article?

agでvimの検索関連を高速化

More than 5 years have passed since last update.

agがとにかく高速で検索できるそうなので今更試してみた。
そしたらすごく速くなった!

ag のインストール

公式の手順が確実です。
https://github.com/ggreer/the_silver_searcher

Mac

$ brew install ag

CentOs

$ rpm -ivh http://swiftsignal.com/packages/centos/6/x86_64/the-silver-searcher-0.14-1.el6.x86_64.rpm
# or 
$ rpm -ivh http://swiftsignal.com/packages/centos/6/i386/the-silver-searcher-0.14-1.el6.i686.rpm

Windows

手順通りソースからビルドするか、以下からバイナリを利用させていただく。

The Silver Searcher windows port
http://blog.kowalczyk.info/software/the-silver-searcher-for-windows.html

コマンドから利用

$ ag hoge

オプション(一部)

オプション 意味
-a 無視リストも対象
-u 隠しファイルおよび無視リストも対象
-g ファイル名で検索
-G 検索対象の指定 [ag -G *.css]
-l 一致したファイル名のみ
-L 一致していないファイル名のみ
-v 不一致検索
-Q 正規表現を無視
-z 圧縮ファイルも対象

無視ファイルリスト

.agignoreで指定可能

ag の検索で除外設定を使う - Qiita

vimで利用

ag.vim

NeoBundle 'rking/ag.vim'

コマンド

コマンド 結果
:Ag カレントディレクトリを再帰的に検索して quickfix へ
:AgAdd :Ag同様だが結果を追加
:AgFromSearch 前回の検索パターンを使用(/による検索など)
:LAg :Ag同様だが、結果を location-list へ
:LAgAdd :AgAdd同様だが、結果を location-list へ
:AgFile ファイル名の検索
:AgHelp vimのドキュメントが検索対象

quickfixでの操作

コマンド 内容
e 開くと同時に終了
o 開く
go プレビュー
t タブで開く
T タブで開く(silently)
h 水平分割で開く
H 水平分割で開く(silently)
v 垂直分割で開く
gv 垂直分割で開く(silently)
q 終了

結果

速い!

Unite.vim と組み合わせる

Unite.vimはインストール済みとして。

" カーソル位置の単語をgrep検索
nnoremap <silent> ,cg :<C-u>Unite grep:. -buffer-name=search-buffer<CR><C-R><C-W>

" 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

結果

速い!

ctrlp.vim と組み合わせる

ctrlp.vimはインストール済みとして。

let g:ctrlp_user_command = 'ag %s -l'

結果

速い!

0829
データ駆動はじめました
https://dd1.work/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした