継続的ブロギング

今度こそは続けるブログ

vimでプロジェクトファイル内テキスト検索(fzf)

f:id:akiza:20170806173906g:plain

こんな感じのやつです。

fzf.vimのREADMEに書いてあるやり方(↓)だと、開いたファイルと同階層のものしか見てくれなかったのでいろいろ試してみました。

github.com

自分の.vimrcに書いてあるfzfの設定はこんな感じです。

" fzf
set rtp+=/usr/local/opt/fzf

function! s:find_git_root()
  return system('git rev-parse --show-toplevel 2> /dev/null')[:-2]
endfunction

command! ProjectFiles execute 'Files' s:find_git_root()

command! -bang -nargs=* Pt
  \ call fzf#vim#grep(
  \   'pt --column --ignore=.git --global-gitignore '.shellescape(<q-args>), 1,
  \   <bang>0 ? fzf#vim#with_preview('up:60%')
  \           : fzf#vim#with_preview({ 'dir': s:find_git_root() }),
  \   <bang>0)

最後のPtというところがそうです。
ほぼREADMEに書いてあるのと一緒ですが、ポイントは { 'dir': s:find_git_root() } をオプションに渡していることです。
あと、自分は検索ツールにthe_platinum_searcherを使っているので、そこは変えています。

github.com

とりあえずご参考まで。。

fzfもっと使いこなしたい!

実践Vim 思考のスピードで編集しよう! (アスキー書籍)

実践Vim 思考のスピードで編集しよう! (アスキー書籍)