我可以减少不单色输出吗?
例如, 的输出git diff
是有颜色的,但git diff | less
不是。
答案1
使用:
git diff --color=always | less -r
--color=always
git
即使输出是管道(不是 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