可以更少保留彩色输出吗?

可以更少保留彩色输出吗?

我可以减少不单色输出吗?

例如, 的输出git diff是有颜色的,但git diff | less不是。

答案1

使用:

git diff --color=always | less -r

--color=alwaysgit即使输出是管道(不是 tty),是否可以告诉输出颜色代码。是否-r可以less解释这些颜色代码和其他转义序列。仅适用-R于 ANSI 颜色代码。

答案2

另一种选择是启用颜色并使用“less -r”作为寻呼机。

git config --global color.ui true
git config --global core.pager 'less -r'

这导致

[color]
    ui = true
[core]
    pager = less -r

在你的 ~/.gitconfig 中

欲了解更多信息,请参阅专业 Git 书籍

可能的值color.ui可以在 git-config 的手册页中找到。的输出man git-config | grep "color.ui$" -A8

color.ui
    This variable determines the default value for variables such as color.diff and
    color.grep that control the use of color per command family. Its scope will expand as
    more commands learn configuration to set a default for the --color option. Set it to
    false or never if you prefer Git commands not to use color unless enabled explicitly
    with some other configuration or the --color option. Set it to always if you want all
    output not intended for machine consumption to use color, to true or auto (this is the
    default since Git 1.8.4) if you want such output to use color when written to the
    terminal.

答案3

使用-r( --raw-control-chars) 选项来 less 或also -R(仅限 ANSI 转义序列)。

我有一个别名~/.bashrc

alias rless='less -r'

答案4

还有tree一个强制颜色的选项:

tree -C | less -r

依此类推ls

ls -lR --color | less -r

相关内容