2

出力を制限する方法はあり:Agますか?

現時点ではこのように見えてひどいです。ファイル名が表示されません。すべてが非常に遅く、最悪です。

更新記録のために、ポイントをよりよく説明するためにQuickfixウィンドウを少しスクロールしました. 経由:cn :cpで使用できますが、 で結果をすばやく確認できるようにしたいと考えていますj k

4

4 に答える 4

4

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'

ここに魔法を追加して、- 6Vim 自体が追加する余分な文字を説明しました。

于 2014-10-30T10:13:12.903 に答える
1

このプラグインを使用していると仮定します。~/.vimrcで指定されているように、これをあなたに追加する必要があります:h g:ag_qhandler

let g:ag_qhandler = 'copen 1'

ただし、おそらく実行できますlet :g:ag_qhandler = 'cc'。これにより、下部に結果が出力されます。:cnextまたはを介し​​てクイックフィックス リストを移動する:cprevと、現在の結果も出力されます。

詳細については、次を参照してください。

:h g:ag_qhandler
:h :cope
于 2014-10-30T05:59:49.533 に答える