とても頭の悪そうなタイトルですが、やりたいことは書いてあるとおりです。
※注意:Vimと書いてますが基本NeoVimでしか確認してないです。
参考にした記事
ほぼ書いてあるまんまです。
vimgrep hoge **/*.* | cw
のときみたいに、Quickfixっぽい感じで表示したり、
grepにマッチした箇所を順番に巡ったりしたい。
agにする
grep
じゃなくて ag
を使うように設定します。ag
使ったこと無いけど……
call denite#custom#var('file_rec', 'command', ['ag', '--follow', '--nocolor', '--nogroup', '-g', '']) call denite#custom#var('grep', 'command', ['ag']) call denite#custom#var('grep', 'recursive_opts', []) call denite#custom#var('grep', 'pattern_opt', []) call denite#custom#var('grep', 'default_opts', ['--follow', '--no-group', '--no-color'])
:Denite grep と :Denite -resume のショートカットを作る
:Denite grep -buffer-name=hoge
:grep結果のバッファに名前をつける:Denite -resume -buffer-name=hoge
:対応する名前のバッファを開き直す:Denite -resume -buffer-name=hoge -select=+1 -immediately
:次のマッチ位置へジャンプ:Denite -resume -buffer-name=hoge -select=-1 -immediately
:前のマッチ位置へジャンプ
ということで、これらを簡単に呼び出せるようにしておけば良いみたいです。
参考記事では <C-u>g
などに割り当てていますが、個人的にはコマンドを作る方が好きです。
" grepする command! Dgrep execute(":Denite grep -buffer-name=grep-buffer-denite") " Denite grep結果を再表示する command! Dresume execute(":Denite -resume -buffer-name=grep-buffer-denite") " resumeしたgrep結果の次の行の結果へ飛ぶ command! Dnext execute(":Denite -resume -buffer-name=grep-buffer-denite -select=+1 -immediately") " resumeしたgrep結果の前の行の結果へ飛ぶ command! Dprev execute(":Denite -resume -buffer-name=grep-buffer-denite -select=-1 -immediately")