私はSLES11システムでリモートで作業しています(残念ながら私にとってはそうです)。このコンピュータでは、特にgitを使用してgit diff
結果をless
いくつかの色に渡します。これで何らかの理由で、色ではなく次のような線が表示されます。
ESC[1mdiff --git a/path/to/file.h b/path/to/file.hESC[m
ESC[1mindex 1ab153f..0491db9 100644ESC[m
など。
私は端末が色をサポートしていることを知っています(lsの結果は色です)。TERM=xterm
そしてそれはCOLORTERM=1
私の環境にあります。
色の違いを正しく表示するにはどうすればよいですか?
答え1
〜のようにテデンと言う、less
'デフォルトの動作は、スタイル別に特殊文字に対応する項目を表示することですcat -v
。less -R
表示される内容を処理するためにエスケープシーケンスが配信されるように変更します。
less
デフォルト値はLESS
環境変数を指定することで指定できます。例えば
export LESS=-R
git
ページャが実行する必要があることについて独自のアイデアを持ってください。環境変数が設定されていない場合は、期待LESS
どおりに呼び出し時に設定されます。FRX
less
git
LESS
はいLESS
設定すると変更されずにそのまま保持され、含まれないと出力が読み取れなくなることがあります-R
。
less
利用可能な設定方法には2つありますgit
。グローバル構成を使用またはLESS
変更することです。このcore.pager
設定、例えば
git config --global core.pager "less -R"
答え2
これがデフォルトの動作ですless
。less -R
カラー出力を表示するには、man less
以下を使用します。
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences and OSC 8 hy‐
perlink sequences are output in "raw" form. Unlike -r, the
screen appearance is maintained correctly, provided that there
are no escape sequences in the file other than these types of
escape sequences. Color escape sequences are only supported
when the color is changed within one line, not across lines.
In other words, the beginning of each line is assumed to be
normal (non-colored), regardless of any escape sequences in
previous lines. For the purpose of keeping track of screen ap‐
pearance, these escape sequences are assumed to not move the
cursor.
less
おそらくエイリアスとして設定されたシステムに慣れていたでしょう。less -R
これがまさにこれがあなたをパニックにさせた理由です。