Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

fzf+ag+vimで隠しファイルをgrep対象に含める

$
0
0

問題意識

fzfにより生産性とQuality of Vimが桁違いに向上している今日このごろ、:Agコマンドで隠しファイル(ドットファイル、dotfiles)が検索対象ファイルにならないことが密かに気になっていた。

そしてやっと隠しファイルも検索対象とする設定を書けたので、もしかしたら世界の誰かのQOV向上に貢献できるかもしれないということでここにメモ。

解決方法

プラグインはdeiinで管理しているので.dein.toml形式で抜粋。fzfとagは別途インストール済ということで。

# .dein.toml

[[plugins]]
repo ='junegunn/fzf.vim'
hook_add ='''
" fzfは単体でインストールしているのでそこへのパスset rtp+=/usr/local/opt/fzf
" dotファイルを含める&プレビュー
command!-bang -nargs=? -complete=dir Files
  \call fzf#vim#files(<q-args>, fzf#vim#with_preview({'source':'ag --hidden --ignore .git -g ""'}),<bang>0)
command!-bang -nargs=* Ag
  \call fzf#vim#grep(  \'ag --column --color --hidden --ignore .git '.shellescape(<q-args>),0,  \<bang>0 ? fzf#vim#with_preview('up:60%')  \: fzf#vim#with_preview('right:50%','?'),  \<bang>0)'''

fzf.vimのREADMEを参考に、:Filesコマンドは.gitignoreされていない全ファイルを対象にする。この書き方のソースは失念、多分検索すれば似たようなものがでてくるはず。

そして今回やっと成功したのが:Agコマンドの設定。READMEに書いてあるfzf#vim#agcallする書き方だとagへの引数は内部で固定されてしまっているらしく、うまくいかなかった。
なのでこちらは諦めて、:Rg用の書き方として載っていたfzf#vim#grepcallする書き方を弄ってみたらうまくいった。

第二引数に0を渡しているのは、1を渡したら:Agで検索したファイルを開いたときになぜか同時に文字列(検索ワード?)が書き込まれることがあるという謎の現象に遭遇したため。0に変えてみたら再現しなくなったのでこれで落ち着いている。
fzfにcolumnオプションを指定するための引数っぽいが、よく分からない。ag --columnと同じ機能で、fzf側でも指定すると競合して変な挙動になるとかかもしれない。求むfzf強者。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>