less
이 스레드 에 따르면 자체는 구문 강조를 수행 할 수 없습니다 .
그러나 git diff
기본 페이저 인 채색 출력을 멋지게 표시합니다. 출력을 git diff
파일로 리디렉션하면 색상 이스케이프 시퀀스가 표시되지 않습니다.
합니까는 git diff
그것이 존재의 보낸 알고, 그에 따라 형식 출력을? 어떻게할까요?
방금 git이 diff
출력 (예 :)의 색상을 지정하는 것을 보았지만 git diff
일반적으로 구문 강조 표시 방법을 모릅니다. 예 :
git show 415fec6:log.tex
TeX와 유사한 구문을 사용하지 않습니다.
git
소스를 읽으면서 다음 힌트를 찾았습니다.
에서 diff.h
:
int use_color;
나는 이전에 구문 강조를 언급하고 있었지만 정확하지 않았다. 내 말은 출력 색상입니다. 예를 들어
답변
Git은 isatty()
stdout이 tty인지 확인하기 위해 사용 합니다 : 이것은 호출기 ( pager.c )와 색상 ( color.c )을 사용 해야하는지 확인하는 데 사용됩니다 .
답변
달리는:
git diff --color=always > output
색상 탈출을 보여줍니다.
나는 그것을 발견 젠장 git
의 color.c
파일 :
static int check_auto_color(void)
{
if (color_stdout_is_tty < 0)
color_stdout_is_tty = isatty(1);
if (color_stdout_is_tty || (pager_in_use() && pager_use_color)) {
char *term = getenv("TERM");
if (term && strcmp(term, "dumb"))
return 1;
}
return 0;
}
답변
less
와 색상을 지원 -r
--raw-control-chars
하고-R
--RAW-CONTROL-CHARS
파이썬 pygmentize
을 사용 하여 강조 표시를하고 파이프에 넣을 수 있습니다 .
이를 모두 결합하려면 수퍼 유저에 설명 된대로 적은 필터 를 구성하십시오