저는 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
사용 가능한 구성 방법에는 두 가지가 있습니다 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
이것이 바로 이것이 당신을 당황하게 만든 이유입니다.