출력을 흑백으로 표시하지 않을 수 있습니까?
예를 들어의 출력 git diff
은 컬러로 표시되지만 컬러 git diff | less
는 아닙니다.
less
만 있습니다.
출력을 흑백으로 표시하지 않을 수 있습니까?
예를 들어의 출력 git diff
은 컬러로 표시되지만 컬러 git diff | less
는 아닙니다.
less
만 있습니다.
답변:
사용하다:
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 "color"이스케이프 시퀀스 이외의 것을 표시하도록 허용 하시겠습니까? 또한 매뉴얼 페이지는 다음과 같이 말합니다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
무시).
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 책을 참조하십시오 .
color.ui true
하면 호출기로 작동하지 않지만 작동했습니다 color.ui always
. 답변이 게시 된 후 변경되었을 수 있습니다.
color.ui true
은 쉼표와 같은 작업을 수행 git -p diff
하고 git -p status
(여기서는 -p
모든 출력을 $ PAGER로 기본적으로 파이프 함을 의미 함 less
) 이전 버전의 git (예 : , 힘내 1.7.1). 그러나 또는 color.ui always
을 직접 지정할 때 색상 출력을 얻으려면 여전히 git에 색상 코드를 출력하도록 지시 합니다 ( "출력이 파이프가 아닌 파이프 임에도 불구하고") . 출력 리디렉션을 명시 적으로 지정하면 호출기에서 종료 한 후 출력이 표시되지 않습니다. git status | less -r
git diff | less -r
-r
( --raw-control-chars
) 옵션을 사용 하여 -R
ANSI 이스케이프 시퀀스 만 줄입니다.
에 대한 별칭이 있습니다 ~/.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
나는 이것이 오래 알고 많은 사람들이 이미 정답을 제공 한하지만 난 항상 사용하는 것이 낫다는 것을 추가하고 싶습니다 less -R
아니라 less -r
당신은 ANSI 색상을 필요로하는 경우 -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