19

現在、私は使用しています:

 ag sessions --color|cut -b1-130

ただし、検索の一致がコマンドによってカットされた場合、これにより色のアーティファクトが発生しますcut

Silversearcher のドキュメントには次のようなものがあります。

   --print-long-lines
          Print matches on very long lines (> 2k characters by default).

2kを別のものに変更できますか? (私にとっては120です。正直なところ、実際のコードで作業するコードはそれより長くなることはありません)。

4

3 に答える 3

1

次の 3 つのオプションが考えられます。

  1. -o オプションを使用して、行全体ではなく検索結果を出力するだけです。ag --color -o

  2. -S オプション (長い行を切り刻む) と -R オプション (色のエスケープ シーケンスを処理する) を使用して、画面サイズの幅で長い行を適切に切り刻む cut の代わりに less を使用します。ag --color <pattern> | less -R -S

  3. cut の代わりに sed や awk などを使用します。ag --color <pattern> |sed -E "s/(.{$COLUMNS}).*$/\1/"

画面サイズの制限で返された行をカットします。もちろん、120 列でチョップすることに決めた場合は、次のことができます。ag --color <pattern> |sed -E "s/(.{120}).*$/\1/"

この最後のオプションは、カラー エスケープ シーケンスの途中でのチョッピングの可能性を防ぎません。あなたが本当にひどい場合は、sed検索パターンを変更して、色のエスケープシーケンスを無視することができます.SOですでに回答されています。とはいえ、上記のオプション 1 の簡単さと正確さを考えると、これを行う目的はわかりません。

于 2017-01-10T19:40:06.017 に答える