某些命令生成彩色文本以提高可读性.
我正在使用Linux.例如,当我使用rak或hg diff
输出为彩色时,为了更好的可读性.
但是,当我通过管道输出 less
hg diff | less
Run Code Online (Sandbox Code Playgroud)
颜色丢失了.
我该如何保留颜色?
谢谢!
use*_*730 12
我相信一些命令足够智能,如果它们检测到它们正在写入管道或文件而不是控制台,则不输出颜色,因为这可能会破坏管道中下一个程序对其输出的解析.
您可以尝试强制程序使用各自的标志(例如--color或其他)输出颜色,但如果它们会尊重您的请求,它最终会依赖于实现.
例如,GNU grep 2.27 less即使传递颜色也不会输出颜色--color.但是如果你通过--color=always并管道进入less,你将能够看到颜色转义代码less.然后,使用该-R标志将less解释颜色转义码.
尝试less -r或(更安全)less -R.请参阅手册.
既然你可能不想一直指定:
export LESS=-R # Put that in a startup script like .bashrc.local
hg diff | less
Run Code Online (Sandbox Code Playgroud)
对于Mercurial,您还可以使用寻呼机扩展.