如何摆脱ESC [在Mac OS X Mavericks上使用git diff时的角色?

yan*_*yan 47 git macos

由于我安装了OS X Mavericks,该命令的结果git diff是渲染如下ESC[xxx字符:

ESC[1mdiff --git a/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xml b/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xmlESC[m
ESC[1mindex 3b65cf1..0ca5d7e 100644ESC[m
ESC[1m--- a/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xmlESC[m
ESC[1m+++ b/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xmlESC[m
ESC[36m@@ -15,14 +15,14 @@ESC[m ESC[mThe purpose of this plugin is to decorate various grails methods.ESC[m
Run Code Online (Sandbox Code Playgroud)

这用于在安装Mavericks之前正确呈现.我不知道有什么不同,所以任何帮助的故障排除将非常感激.

请注意,使用的寻呼机是less从我点击后h我得到以下内容:

             SUMMARY OF LESS COMMANDS

Commands marked with * may be preceded by a number, N.
Notes in parentheses indicate the behavior if N is given.
Run Code Online (Sandbox Code Playgroud)

Joh*_*ter 64

你有LESS环境变量集吗?你可以检查使用:

env | grep LESS
Run Code Online (Sandbox Code Playgroud)

要么:

echo $LESS
Run Code Online (Sandbox Code Playgroud)

如果是这样,您需要确保该R选项在那里.这允许ANSI转义序列无损地通过,并且它们将在终端中呈现为颜色.

仅供参考,我用这个:

export LESS=eFRX
Run Code Online (Sandbox Code Playgroud)


Fre*_*Pow 46

这有效:

git config --global core.pager "less -r"
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用(FreeBSD).接受的答案没有. (7认同)

Sta*_*uff 7

尝试“less -R”(大“R”)

这对我有用:

git config core.pager 'less -R'
Run Code Online (Sandbox Code Playgroud)

“少-R”与“少-r”

-R(big R) 似乎是-r(small r)的更安全版本。所以这就是我更喜欢大 R 版本的原因。

引自man less

-r--raw-control-chars
导致显示“原始”控制字符。默认是使用插入符号显示控制字符;例如,控制-A(八进制001)显示为“ ^A”。警告:使用该-r选项时,less 无法跟踪屏幕的实际外观(因为这取决于屏幕如何响应每种类型的控制字符)。因此,可能会导致各种显示问题,例如长线在错误的位置被拆分。

-R--RAW-CONTROL-CHARS
Like -r,但只有 ANSI“颜色”转义序列以“原始”形式输出。与 不同-r,在大多数情况下,屏幕外观保持正确。ANSI“颜色”转义序列是以下形式的序列:

ESC [ ... 米

其中“...”是零个或多个颜色规范字符 为了跟踪屏幕外观,假定 ANSI 颜色转义序列不移动光标。通过将环境变量LESSANSIENDCHARS设置为可以结束颜色转义序列的字符列表,您可以减少认为“m”以外的字符可以结束 ANSI颜色转义序列。并且您可以通过将环境变量设置为LESSANSIMIDCHARS可以出现的字符列表来减少认为在 ESC 和 m 之间可能出现标准字符以外的字符。


Sri*_*ula 5

git中的全局寻呼机配置选项,只是将输出流发送到moreless命令.您可以通过将全局配置选项设置为以下任一项来删除此输出中的转义字符:

git config --global core.pager "more -R"
Run Code Online (Sandbox Code Playgroud)

继续使用more您的寻呼机或

git config --global core.pager "less -R"
Run Code Online (Sandbox Code Playgroud)

继续使用less您的寻呼机