如何将终端的错误消息设为彩色?

时间:2009-01-17 02:13:32

标签: macos bash terminal

我希望在我的终端中看到错误,如:

enter image description here

3 个答案:

答案 0 :(得分:3)

IPython将语法突出显示Python代码和堆栈跟踪,如您给出的示例(实际上是Python堆栈跟踪)。

您链接到的示例实际上并未在用户控制台上突出显示语法,或者来自其shell的支持,而是在上传后由Stack Overflow网站突出显示。

如果你想要一个新手友好的UNIX shell,它可以进行某种级别的通用语法高亮显示,我推荐the fish shell

答案 1 :(得分:2)

不幸的是,没有完美的通用解决方案。但是有一些通用的方法可行。

GRC,代表Generic Colouriser,用于美化日志文件或输出命令。它包装在主要发行版上。我用它来非常好地为我的make输出着色。 GRC通常用于具有别名的常见命令,如“grc comand”。还有其他着色剂和网站有时会有自己独特的颜色。

许多程序使用传统的命令行开关--color = auto。 --color =总是会使颜色在非交互式shell中发生,以后可以使用终端代码感知命令(如less -R)来查看记录的命令。

如果您的文本来自任何中途已知程序并且已记录或存储在文件中,则文本编辑Vim或Emacs可以对其进行一些非常智能的突出显示。其他编辑/想法也可以,但没有一个是全面的。它们具有配置文件的一般突出显示方案以及非常模糊的特定文件类型,例如“Quake [1-3]配置文件”。当然,每个编辑器都有许多颜色方案可以改变编辑器识别的高亮区域的颜色。这可能是最常用来突出显示效果的方法。

当然,有一些方法可以在终端中手动输入颜色,包括tput或实际的转义码,以及ipython等各个程序。你没有问过这个问题,但是你选择了这样的答案作为你最喜欢的解决方案:(

您可能期望的一般解决方案是将终端中的标准错误着色。不幸的是,由于很多复杂情况,没有办法做到这一点,例如你的提示被发送到标准错误。

答案 2 :(得分:0)

试试这个Perl脚本示例:

use Term::ANSIColor;
print "Hello "
  .color("green")
  ."world"
  .color("reset")
  ."\n"

或作为贝壳单线:

perl -e 'use Term::ANSIColor; print "Hello ".color("green")."world".color("reset")."\n"'

请注意,您需要安装 Term :: ANSIColor 模块。