Macos 在Mac OS X Mavericks上使用git diff时,如何去掉ESC[字符?
由于我安装了OS X Mavericks,因此命令的结果是呈现如下字符:Macos 在Mac OS X Mavericks上使用git diff时,如何去掉ESC[字符?,macos,git,Macos,Git,由于我安装了OS X Mavericks,因此命令的结果是呈现如下字符: 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..0c
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
在安装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.
您是否设置了
LESS
环境变量?您可以使用以下方法进行检查:
env | grep LESS
或:
如果是这样,您需要确保R
选项在那里。这允许ANSI转义序列毫发无损地通过,并且它们将在终端中呈现为颜色
仅供参考,我使用以下内容:
export LESS=eFRX
这项工作:
git config --global core.pager "less -r"
git中的全局寻呼机配置选项只将输出流发送到
more
或less
命令。通过将全局配置选项设置为以下任一选项,可以消除此输出中的转义字符:
git config --global core.pager "more -R"
继续使用more
作为寻呼机或
git config --global core.pager "less -R"
要继续使用
less
作为寻呼机另一种选择是通过执行以下操作来消除git对输出的“着色化”
$ git config --global color.ui false
有关详细信息,请参阅git帮助配置
参考:您可以使用选项
-R
重新绘制屏幕以删除所有缓冲输入
export LESS="$LESS -R"
试试“less-R”(大“R”)
这对我很有用:
git config core.pager'less-R'
“less-R”与“less-R”
-R
(大R)似乎是-R
(小R)更安全的版本。所以我更喜欢大R版本
引自:
-r
或-原始控制字符
导致显示“原始”控制字符。默认情况下,使用插入符号显示控制字符;例如,控制-a(八进制001)显示为“
^a
”。警告:使用-r
选项时,less无法跟踪屏幕的实际外观(因为这取决于屏幕如何响应每种类型的控制字符)。因此,可能会导致各种显示问题,例如在错误的位置拆分长线
-R
或-RAW-CONTROL-CHARS
与
-r
类似,但只有ANSI“颜色”转义序列以“原始”形式输出。与-r
不同的是,屏幕外观在大多数情况下保持正确。ANSI“颜色”转义序列是以下形式的序列:
ESC[…m
如果“…”是零个或多个颜色规格字符,以便跟踪屏幕外观,则假定ANSI颜色转义序列不会移动光标。您可以减少对“m”以外字符的思考通过将环境变量LESSANSIENDCHAR
S设置为可结束颜色转义序列的字符列表,可以结束ANSI颜色转义序列。通过将环境变量lessansiendchars
设置为e可以显示的字符列表
我也遇到过类似的问题。我的产出为: LESS=-iMPM--?f%f--:-->?磅线%lt-%lb?L/L%L?pB(%pB%)。 LESSOPEN=| |/usr/bin/lessppe.sh%s 尝试在下面执行,但没有解决问题- git config--global color.ui auto true 该问题通过以下方式解决:-
export LESS=eFRX我的OSX版本落后了很多,但我要检查的第一件事是
LESS
是否正在使用-R
运行。如果$LESS
设置为某个值,git将不会用通常的FRSX
覆盖它。另请参阅git配置文档中的core.pager
。对我来说,这会给出-cise
。我使用了您的值(eFRX
)来尝试它,它确实解决了问题!非常感谢!我也遇到了完全相同的问题,但是export LESS=eFRX
没有帮助,只要git config--global core.autocrlf input
。有什么想法吗?我不知道core.autocrlf为什么会对它有任何影响。:-(这对我很有用。)(FreeBSD)。接受的答案没有。@dwich这可能是因为您的控制字符不是颜色代码。-r传递所有控制字符,-r仅传递颜色控制字符。从
export LESS="$LESS -R"