【发布时间】:2012-10-28 22:41:49
【问题描述】:
为了便于阅读,某些命令会生成彩色文本。
我正在使用 Linux。例如,当我使用 rak 或 hg diff
输出为彩色以提高可读性。
但是,当我通过 less 管道输出时
hg diff | less
颜色消失了。
如何保留颜色?
谢谢!
【问题讨论】:
-
grep --color=always 模式文件[或]字符串 |少-R
标签: linux
为了便于阅读,某些命令会生成彩色文本。
我正在使用 Linux。例如,当我使用 rak 或 hg diff
输出为彩色以提高可读性。
但是,当我通过 less 管道输出时
hg diff | less
颜色消失了。
如何保留颜色?
谢谢!
【问题讨论】:
标签: linux
我相信某些命令足够聪明,如果它们检测到它们正在写入管道或文件而不是控制台,则不会输出颜色,因为这可能会破坏管道中下一个程序对其输出的解析。
您可以尝试强制程序使用各自的标志(例如--color 或其他)输出颜色,但最终取决于它们是否会满足您的请求。
例如,GNU grep 2.27 不会将颜色输出到less,即使将--color 传递给它。但是,如果您将--color=always 传递给less,您将能够通过less 看到颜色转义码。然后,使用-R 标志将使less 解释颜色转义码。
【讨论】:
git status,它是git -c color.status=always status | less -REX
尝试less -r 或(更安全)less -R。 See the manual.
因为您可能不想一直指定:
export LESS=-R # Put that in a startup script like .bashrc.local
hg diff | less
对于 Mercurial,您还可以使用 pager extension。
【讨论】:
man less 是否显示选项?