Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为了便于阅读,某些命令会生成彩色文本。
我正在使用 Linux。例如,当我使用rak或hg diff 输出为彩色以提高可读性时。
rak
hg diff
但是,当我通过管道输出less
less
hg diff | less
颜色消失了。
如何保持颜色?
谢谢!
我相信一些命令足够聪明,如果它们检测到它们正在写入管道或文件而不是控制台,则不会输出颜色,因为这可能会破坏管道中下一个程序对其输出的解析。
您可以尝试强制程序使用它们各自的标志(例如--color或其他)输出颜色,但最终取决于它们是否会满足您的请求。
--color
less例如,GNU grep 2.27即使传递给它也不会输出颜色--color。但是,如果您将--color=always其传递并通过管道输入less,您将能够通过less. 然后,使用-R标志将less解释颜色转义码。
--color=always
-R
尝试less -r或(更安全)less -R。请参阅手册。
less -r
less -R
由于您可能不想一直指定:
export LESS=-R # Put that in a startup script like .bashrc.local hg diff | less
对于 Mercurial,您还可以使用寻呼机扩展。