保留通过“少”或“更多”传送的文本的颜色

时间:2012-11-08 17:08:03

标签: linux

某些命令会生成彩色文本以便于阅读。

我正在使用Linux。例如,当我使用rakhg diff时 输出颜色为更好的可读性。

但是当我通过less

输出输出时
hg diff | less

颜色丢失。

如何保留颜色?

谢谢!

2 个答案:

答案 0 :(得分:7)

我相信一些命令足够智能,如果它们检测到它们正在写入管道或文件而不是控制台,则不输出颜色,因为这可能会破坏管道中下一个程序对其输出的解析。

您可以尝试强制程序使用各自的标记输出颜色(例如--color或其他),但如果他们会尊重您的请求,则最终会依赖于实现。

例如,即使将less传递给它,GNU grep 2.27也不会将颜色输出到--color。但是,如果您传递--color=always并将其传递到less,您将能够通过less查看颜色转义码。然后,使用-R标志将less解释颜色转义码。

答案 1 :(得分:6)

尝试less -r或(更安全)less -RSee the manual

因为您可能不想一直指定:

export LESS=-R # Put that in a startup script like .bashrc.local
hg diff | less

对于Mercurial,您还可以使用pager extension