grepツールであるjvgrepが良い感じだったので、ctrlp.vimでも使うことにしました。
追記(2017-01-15)
Windowsで動かない場合以下のようにすると、動作すると思います。
let g:ctrlp_user_command = 'cd %s && jvgrep "" -i -r --no-color -l ./**/*'
Windowsで以下のように、%s
を調べてみたところ"C:\dev"
のようにダブルクォートで囲われて出力され、jvgrepのpath指定に渡すのが難しかったため、一旦cd
で移動するという手法を取りました。
let g:ctrlp_user_command = 'echo %s'
" => "C:\dev"
ctrlp.vimでjvgrep
ctrlp.vimのg:ctrlp_user_command
に以下のように設定すると動きました(optionは好みで変更して下さい)。
if executable('jvgrep')
let g:ctrlp_use_caching = 0
let g:ctrlp_user_command = 'jvgrep "" -i -r --no-color -l %s'
endif
ag等を使用する場合、以下のように%s
が""
(ダブルクォート)より左に配置される例がよく見られますが、jvgrepでは右に配置しないと動きませんでした。
let g:ctrlp_user_command = 'ag %s -i --nocolor --nogroup -g ""'
そもそもctrlp.vimのhelpに
Use %s in place of the target directory
とあるので、右側に配置する方が(個人的には)自然だと思います。