回答:
つかいます:
git diff --color=always | less -r
--color=always
git
出力がパイプ(ttyではない)であっても、カラーコードを出力するように指示するためにあります。そして、それらのカラーコードと他のエスケープシーケンスを解釈-r
するように伝えるless
ためにあります。-R
ANSIカラーコードのみに使用します。
git config color.ui true
色付きの出力を得るのに十分であるべき、と自動的に長い出力のページャを実行します。
watch --color 'git diff --cached --color=always'
、その友人はあなたにいくつかの追加の素晴らしさをもたらすことができます。
less -R
より良い(またはexport LESS=R
で/etc/profile
)使用していませんか?ANSI「カラー」エスケープシーケンス以外の表示を許可するのはなぜですか?また、manページは述べていますWarning: when the -r option is used, less cannot keep track of the actual appearance of the screen (since this depends on how the screen responds to each type of control character). Thus, various display problems may result, such as long lines being split in the wrong place.
-r
オプションを指定し忘れた場合は、less
プロンプトで「-r」と入力するだけです。これは、もちろん、ほとんどのオプションまたはほとんどすべてのオプションで機能します(つまり、-i
ignorecaseをオンにします)。
grep --color=always
同じように機能します。これはこの質問または回答の一部ではありませんが、私はその質問についてグーグルで検索してここに来ました。
別のオプションは、色を有効にし、ページャーとして「less -r」を使用することです。
git config --global color.ui true
git config --global core.pager 'less -r'
これにより
[color]
ui = true
[core]
pager = less -r
〜/ .gitconfigで
詳細については、Pro Git bookを参照してください。
color.ui true
と、ページャーでは機能しませんでしたが、機能color.ui always
しました。これは、回答が投稿されてから変更された可能性があります。
color.ui true
同じようcomandsのために働くんgit -p diff
とgit -p status
(ここで、-p
すべての出力は、それはだ、デフォルトでは、$ PAGERにパイプを意味しless
、たとえば(偶数のgitのではなく、古いバージョンの) 、Git 1.7.1)。ただしcolor.ui always
、git status | less -r
またはを直接指定すると、色付きの出力を取得する必要があります(出力が(ttyではなく)パイプであってもgitにカラーコードを出力するように指示します)git diff | less -r
。出力リダイレクトを明示的に指定すると、ページャーから終了した後の出力は表示されません。
less(またはANSIエスケープシーケンスのみ)には-r
(--raw-control-chars
)オプションを使用します-R
。
私はこれのエイリアスを持っています ~/.bashrc
alias rless='less -r'
alias less='less -r'
。しない理由は?
-r
不必要に使用すると視覚化の問題につながる可能性があることを漠然と覚えています。
ack
をless -r
すると、キャリッジリターンを失います
\less
視覚化が失敗した場合にのみ使用できます。
less
何にもエイリアスする必要はありません。$LESS
環境変数を、常に提供したいフラグのセットに設定するだけですless
。たとえばexport LESS='-MRq -z-2 -j2’
また、tree
上の色を強制するオプションがあります:
tree -C | less -r
などls
:
ls -lR --color | less -r
誰かがjsonのページングに興味がjq
あり、less
それを使用して達成できる場合:
jq -C <jq args> file.json | less -R
例えば
jq -C . file.json | less -R
ソース:https : //github.com/stedolan/jq/issues/764#issuecomment-95355331
私はこれが古く、多くがすでに正しい答えを提供していることを知っていますが、文字を表示する際に問題が発生する可能性があるため、ANSIカラーのみが必要な場合ではなくless -R
、常に使用less -r
することをお勧めします-r
。
マニュアルから:
-r or --raw-control-chars
Causes "raw" control characters to be displayed. The default
is to display control characters using the caret notation; for
example, a control-A (octal 001) is displayed as "^A". Warn‐
ing: when the -r option is used, less cannot keep track of the
actual appearance of the screen (since this depends on how the
screen responds to each type of control character). Thus, var‐
ious display problems may result, such as long lines being
split in the wrong place.
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences are output in
"raw" form. Unlike -r, the screen appearance is maintained
correctly in most cases. ANSI "color" escape sequences are
sequences of the form:
ESC [ ... m