出力を制限する方法はあり:Ag
ますか?
現時点ではこのように見えてひどいです。ファイル名が表示されません。すべてが非常に遅く、最悪です。
更新記録のために、ポイントをよりよく説明するためにQuickfixウィンドウを少しスクロールしました. 経由:cn
:cp
で使用できますが、 で結果をすばやく確認できるようにしたいと考えていますj
k
。
man ページを見てみると、Ag 自体に組み込まれている出力を制限する方法はないようです。
行の長さを制限する別の方法はありますか? 実際、Linux には組み込みの「cut」コマンドがあります。たとえば、シェルで使用します。
ag --column foo | cut -c 1-80
すべての行を 80 に制限します。
次にag.vim
、特別に細工されたコマンドを実行する必要があります。これにはg:agprg
が存在します。そこで私が最初に考えたのは次のことです。
let g:agprg='ag --column \| cut -c 1-80' " doesn't work
これに関する問題は、ag.vim
プラグインが余分な引数を最後に追加するだけで、最終的にag --column | cut -c 1-80 something-i-searched-for
. | の前に引数を直接「挿入」する方法はありますか?
1 つのトリックは、次のように一時的なシェル関数を使用することです。
f() { ag --column "$@" | cut -c 1-80 }; f something-i-search-for
残念ながら、これはまだ使用できません。ag.vim
最初の単語が実際のコマンドかどうかをチェックします。そのため、「f()」という名前の実行可能ファイルが存在しないと不平を言っています。だから私の最終的な解決策:
let g:agprg='true ; f(){ ag --column "$@" \| cut -c 1-80 }; f'
true
常に存在し、true を返す以外は何もしないので、これは機能します!
の代わりに実際の画面幅にするには80
、次を使用できます。
let g:agprg='true ; f(){ ag --column "$@" \| cut -c 1-'.(&columns - 6).' }; f'
ここに魔法を追加して、- 6
Vim 自体が追加する余分な文字を説明しました。
このプラグインを使用していると仮定します。~/.vimrc
で指定されているように、これをあなたに追加する必要があります:h g:ag_qhandler
let g:ag_qhandler = 'copen 1'
ただし、おそらく実行できますlet :g:ag_qhandler = 'cc'
。これにより、下部に結果が出力されます。:cnext
またはを介してクイックフィックス リストを移動する:cprev
と、現在の結果も出力されます。
詳細については、次を参照してください。
:h g:ag_qhandler
:h :cope