-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
我在Laravel Artisan和Symfony控制台的Git for Windows v2.7.1中遇到了类似的ANSI颜色转义序列问题。这里提到的LESS解决方案没有解决这个问题。 由于Git for Windows使用bash --login -i打开终端,因此在终端启动后输入的这行对我来说确实有效:
8条答案
按热度按时间wpx232ag1#
尝试设置您的
LESS
环境变量以包含-R
选项:如果可以,将
export LESS=-R
添加到~/.bashrc
或~/.profile
或类似的shell启动文件中。igsr9ssn2#
正如其他人所指出的,问题是终端很好,但是当Git调用分页器时,它没有正确地解释ANSI颜色代码。
我会先在您的环境中 * unset *
LESS
;这听起来像是你之前设置了一些模糊Git需要的东西。如果这样就能解决问题,那就这样吧。如果你真的必须自定义LESS
,请注意Git以FRSX
作为默认值,所以如果不需要,请小心更改它们。如果您出于某种原因希望
LESS
在您的环境中与您希望的Git环境不同,那么处理Git和分页器的理想方法是通过core.pager
配置变量。引用manpage:git将用于分页输出的命令。可以用GIT_PAGER环境变量覆盖。请注意,如果在运行分页器时LESS环境变量未设置,git会将其设置为FRSX。可以通过将LESS变量设置为其他值来更改这些设置。或者,通过设置core.pager选项,可以在项目或全局基础上覆盖这些设置。设置core.pager对LESS环境变量的行为没有影响,所以如果你想用这种方式覆盖git的默认设置,你需要显式设置。例如,要以向后兼容的方式禁用S选项,请将core.pager设置为
less -+$LESS -FRX
。这将由git传递给shell,shell将最终命令转换为LESS=FRSX less -+FRSX -FRX
。这一点,再加上一些你想要的选择的知识,应该能让你达到你想要的目的。(花哨的向后兼容方法的工作原理是禁用
LESS
中当前的所有选项,然后添加回您想要的选项。ars1skjm3#
在git中,你可以使用
-R
选项来改变你的分页器:ndasle7k4#
对我来说,这并不起作用:
git config --global core.pager less -R
所以我在~/.gitconfig文件中添加了以下内容
为了测试它我做了
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
mftmpeh85#
好的我知道了这个问题与变量LESS有关。
下面这一行解决了这个问题:
nnt7mjpx6#
我也有同样的问题。但是为什么我需要在一台机器上配置一个git,而不需要在另一台机器上?我想解决问题的根源,因为
git config --global core.pager“less -R”
对我来说是个解决办法
utugiqy67#
我在Laravel Artisan和Symfony控制台的Git for Windows v2.7.1中遇到了类似的ANSI颜色转义序列问题。这里提到的
LESS
解决方案没有解决这个问题。由于Git for Windows使用
bash --login -i
打开终端,因此在终端启动后输入的这行对我来说确实有效:vjrehmav8#
无论谁在这里结束,在我的情况下,它是通过将core.pager设置为空字符串来解决的,而不是取消设置:
这是来自https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration