最近,我切换到SLES 11.我发现git命令有问题。所有的ANSI颜色都不能被渲染。相反,它显示了ANSI代码:git中的ANSI颜色显示不正确
* ESC [33米 *提交0a02124a0fd85c1f0094bcdf15bac1645e3c8630ESC [M
注:在 'LS' 的作品ANSI色非常好。
最近,我切换到SLES 11.我发现git命令有问题。所有的ANSI颜色都不能被渲染。相反,它显示了ANSI代码:git中的ANSI颜色显示不正确
* ESC [33米 *提交0a02124a0fd85c1f0094bcdf15bac1645e3c8630ESC [M
注:在 'LS' 的作品ANSI色非常好。
尝试设置你的LESS
环境变量包括-R
选项:
LESS=-R git grep ...
如果一切正常,添加export LESS=-R
您~/.bashrc
或~/.profile
或类似的shell启动文件。
-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
where the "..." is zero or more color specification
characters
好的,我明白了。这个问题与变量LESS有关。
以下行解决这个问题:
export LESS="-erX"
您应该使用“-erX”的“-eRX”intead(每个sarnold的答案,如上所示)。如果你使用“-r”而不是更少,会直接通过其他控制字符(你可能不需要),并且更少不能正确地确定输出行的数量,所以一些滚动屏幕(你绝对不会想)。 “-e”和“-X”的使用与解释颜色转义序列无关。 “-e”会导致在第二次点击文件结尾时自动退出,“-X”“禁止发送termcap初始化和取消初始化字符串到终端。” – craigster0
的问题,正如其他人所指出的,是你的终端是好的,但是当Git的调用寻呼机,它不能正确解释ANSI颜色代码。
我开始了由你重置您的环境中LESS
;这听起来像你以前可能已经将它设置为模糊Git所需的东西。如果解决了这个问题,那你就是。如果您确实需要自定义LESS
,请注意,Git默认为FRSX
,因此如果不需要,请谨慎更改。
如果做无论出于何种原因要在你的环境,你要哪个GIT中不同LESS
,理想的方式来处理Git和寻呼机是通过core.pager
配置变量。引用手册页:
git将用于分页输出的命令。可以用GIT_PAGER环境变量覆盖。请注意,如果git在运行寻呼机时未设置,那么git会将LESS环境变量设置为FRSX。可以通过将LESS变量设置为其他值来更改这些设置。或者,可以通过设置core.pager选项在项目或全局基础上覆盖这些设置。设置core.pager对上面的LESS环境变量行为没有影响,所以如果你想以这种方式覆盖git的默认设置,你需要明确。例如,要以向后兼容的方式禁用S选项,请将core.pager设置为
less -+$LESS -FRX
。这将通过git传递给shell,这会将最终命令转换为LESS=FRSX less -+FRSX -FRX
。
结合一些你想要的选项的知识,应该让你到你想要的地方。 (花式向后兼容的方法通过禁用当前在LESS
中的所有选项,然后添加你想要的。)
在Git中,你可以改变您的寻呼机使用-R
选项:
git config --global core.pager "less -R"
我必须首先解除它,然后在引号中加上'less -R'。尽管如此。 – mtfurlan
对于我来说,这并不工作:
git config --global core.pager less -R
于是我又追加了以下内容我的〜/ .gitconfig文件
[core]
pager = less -R
要测试它,我没有
git log --graph --pretty=format:"%C(yellow)%h%Creset%C(blue)%d%Creset %C(white bold)%s%Creset %C(white dim)(by %an %ar)%Creset" --all
你也可以尝试“--no-pager”开关。例如“git - 无图差异” –
我有类似的问题,在Laravel工匠和Symfony的游戏机在Git的ANSI颜色转义序列为Windows v2.7.1。这里提到的LESS
解决方案没有解决问题。
由于混帐的Windows打开终端与bash --login -i
,该行进入后终端开始做的工作对我来说:
bash
我有同样的问题。但为什么我需要在一台机器上配置git,而不需要另一台?我想解决这个问题的来源,因为
混帐配置--global core.pager“少-R”
看起来像我的一个解决方法。
这可能是http://stackoverflow.com/questions/6983305/how-to-fix-git-log-output-missing-lines-in-less的重复 - 假设你考虑到sehe的答案。 (我真的不知道为什么人们试图设置'LESS'来帮助Git - 它知道它需要什么。) – Cascabel
我已经将LESS设置为使用其他设置。 – ben3000