less
根据说法,它本身无法进行语法突出显示这个线程。
然而,git diff
它在 less 的默认分页器中很好地显示了彩色输出。当我将 的输出重定向git diff
到文件中时,没有可见的颜色转义序列。
是否git diff
知道它被发送到哪里,并相应地格式化输出?一个人会怎样做呢?
我刚刚注意到 git 对diff
输出进行了着色(例如git diff
),但是,它通常不知道如何进行语法突出显示。例如
git show 415fec6:log.tex
不启用任何类似 TeX 的语法。
阅读git
来源,我发现了以下提示
在diff.h
:
int use_color;
我之前提到过语法高亮,但这是不正确的。我的意思是输出着色,参见例如
答案1
答案2
跑步:
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;
}
答案3
less
可以支持颜色-r
--raw-control-chars
与-R
--RAW-CONTROL-CHARS
你可以使用Pythonpygmentize
进行突出显示并将其输入。
要将其全部组合起来,请配置 less 过滤器如超级用户所述