【问题标题】:Preserving color of text piped through "less" or "more"保留通过“更少”或“更多”管道传输的文本颜色
【发布时间】:2012-10-28 22:41:49
【问题描述】:

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

我正在使用 Linux。例如,当我使用 rakhg diff 输出为彩色以提高可读性。

但是,当我通过 less 管道输出时

hg diff | less

颜色消失了。

如何保留颜色?

谢谢!

【问题讨论】:

标签: linux


【解决方案1】:

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

您可以尝试强制程序使用各自的标志(例如--color 或其他)输出颜色,但最终取决于它们是否会满足您的请求。

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

【讨论】:

【解决方案2】:

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

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

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

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

【讨论】:

  • 谢谢。但是由于某种原因,这似乎对我不起作用。我在 Linux Fedora 上。
  • 我在 Ubuntu 上,它在这里工作。 man less 是否显示选项?
猜你喜欢
  • 2017-01-07
  • 2023-01-11
  • 2011-04-23
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
相关资源
最近更新 更多