【问题标题】:"more" command alternative that does support colors? [closed]支持颜色的“更多”命令替代方案? [关闭]
【发布时间】:2012-05-27 20:22:22
【问题描述】:

这是我在 Linux 中最烦人的 10 大问题。我喜欢终端中的彩色输出:很高兴看到并且在阅读时很有用。

我在新系统上做的第一件事是为lsgrep设置别名以显示彩色输出,第二是安装vimhtop

我同时使用 Gentoo 和 Ubuntu,我发现 Gentoo 的包管理器 emergeapt-get/aptitude 具有更高的可读性,因为它使用的颜色输出比后者多得多。

所以,每当我必须用more 传递emerge 命令时,所有颜色都会丢失,我必须将注意力集中在每一行上,以免遗漏任何重要内容。

我可以理解像more 这样的基本命令不应该依赖于ncurses(有人可能会争辩说我们也有less,所以两者之一甚至可以是颜色友好的),但是为什么没有像vi/vimtop/htop 等支持颜色的more著名替代品吗?

感谢任何提示。

【问题讨论】:

  • 糟糕,you are right。但这仅适用于lsgrep。对于其他启用颜色的命令,例如 emerge?
  • 对不起,我不明白unbuffer 的工作原理。能否请您提供一个ls 的示例,看起来很有趣...
  • more 确实支持颜色,和ncurses无关。试试:printf '\033[31mfoo\033[0;37m\n' | more

标签: linux shell command-line colors ncurses


【解决方案1】:

大多数可以输出颜色的命令都有一个选项可供选择:

  • 开启:始终输出颜色
  • 关闭:从不输出颜色
  • AUTO:当且仅当输出是终端时才显示颜色

许多命令在彩色自动模式下自动运行。 emerge 就是这种情况。这就是为什么在管道输出时没有颜色:pioe 不是终端。

解决办法是告诉emerge无条件输出颜色。当然,告诉less 不要过滤它们。

试试:

emerge --color y | less -R

【讨论】:

  • 太棒了,它有效!谢谢!
  • @Avio - 顺便说一句,您可以将-R 设置为LESS 环境变量。与alias grep='grep --color=always'alias ls='ls --color=always' 配合使用效果很好。
  • 好的,谢谢,我会做的!老实说,我几乎从未使用过less,我一直认为它只是more 的替代品。现在你会说即使nano 也支持颜色? :)
  • @Avio - 当然! nano -Y c test.c。您仍然需要调整您的 nanorc 文件以包含 c.nanorc 或您想要启用的任何语法。但这将是另一个问题......
  • Avio - 实际上more 将始终显示输入中存在的颜色。 less IMO 最好的地方不是颜色,而是您可以导航输出并进行搜索(使用“/”)。
猜你喜欢
  • 2011-03-19
  • 2010-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 2012-10-08
  • 2010-10-11
相关资源
最近更新 更多