grep ag ack出力をvimにリダイレクトするときにシェルTABコンプリートが機能するようにするにはどうすればよいですか?

grep ag ack出力をvimにリダイレクトするときにシェルTABコンプリートが機能するようにするにはどうすればよいですか?

ag使い方を比較的透明にするためにbash関数として定義しました。

ag() { [ $# -gt 0 ] && vim -c silent\ SyntasticToggleMode -c copen -q <(/usr/bin/ag --silent --vimgrep --nogroup "$@") || /usr/bin/ag; }

これはうまくいきますが、TABでファイル名を完了しようとするとvimすぐに完了して停止します。

$ [git:master] ag sense<TAB>
Vim: Warning: Output is not to a terminal

唯一の方法は、他のシェルで停止しているvimプロセスを終了することです。

ここで何が問題であり、このbash機能をTABコンプリートと互換性があるようにアップグレードするにはどうすればよいですか(または他の選択肢がありますか?)

編集はagアップストリーム完了を送信しません。

$ [git:master] complete -p ag
-bash: complete: ag: no completion specification

ベストアンサー1

おすすめ記事