2016-12-29 2 views
7
silversearcher

で長い行を無視します。は、今私が使用しています

Silversearcherはドキュメントでこれを持っている:

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

は、私が何か他のものに2Kを変更することはできますか? (私にとっては120、正直なところ、実際のコードで動作するコードは決してそれよりも長いためではないからです)。私は3つのオプションの

答えて

8

非常に奇妙なことに、文書化された--print-long-linesは実際には何もしませんが、このためのスイッチがあります:-W NUM/--width NUMこれはまったく文書化されていません。 https://github.com/ggreer/the_silver_searcher/pull/720

+1

Ubuntuのag(バージョン0.31.0)はそれをまだサポートしていません。 – exebook

1

を考えることができます:うまくag --color -o

  • 使用少ない代わりのカット:

    1. ちょうど-oオプションを使用して、行全体の代わりに、検索結果を印刷します-Sオプション(チープロングライン)と-Rオプション(カラーエスケープシーケンスを扱う)を使用して、画面サイズの幅で長い行をチョップします。ag --color <pattern> | less -R -S

    2. sedまたはawkの代わりにカット:ag --color <pattern> |sed -E "s/(.{$COLUMNS}).*$/\1/"

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

    この最後のオプションでは、カラーエスケープシーケンスの途中でチョッピングする可能性はありません。あなたが本当に嫌な人であれば、sedの検索パターンを変更して色のエスケープシーケンスを無視することができます - 既にSOに答えています。それは、上記の選択肢1の容易さと正確さを考えれば、私はこれを行う目的を見ません。

  • 関連する問題