我希望在我的终端中看到五颜六色的错误,例如:
3 回答
IPython将语法突出显示 Python 代码和堆栈跟踪,如您提供的示例(实际上是 Python 堆栈跟踪)。
您链接到的示例实际上并没有在用户的控制台上突出显示语法,也没有得到他们的 shell 的支持,而是在上传后由 Stack Overflow 网站突出显示。
如果你想要一个对新手友好的 UNIX shell,它可以进行某种程度的通用语法突出显示,我推荐fish shell。
不幸的是,没有完美的通用解决方案。但是有一些通用的方法可以工作。
GRC代表 Generic Colouriser,用于美化您的日志文件或命令输出。它打包在主要发行版上。我已经用它很好地为我的 make 输出着色。GRC 通常用于具有“grc 命令”等别名的常用命令。还有其他着色器和网站有时有自己独特的着色器。
许多程序使用传统的命令行开关--color=auto。--color=always 即使在非交互式 shell 中也会发生颜色,稍后使用诸如 less -R 之类的终端代码感知命令可以很好地查看记录的命令。
如果你的文本来自任何半途而废的程序,并且曾经被记录或存储在文件中,那么文本编辑器 Vim 或 Emacs 可以对其进行一些非常智能的突出显示。其他编辑器/IDE 也可以,但没有一个是全面的。它们具有配置文件的一般突出显示方案以及非常模糊的特定文件类型,例如“Quake[1-3] 配置文件”。当然,每个编辑器都有很多配色方案来改变编辑器识别的高亮区域的颜色。这可能是最常用于获得非常好的突出显示的方法。
当然,有一些方法可以在终端中手动输入颜色,使用 tput 或实际的转义码,以及 ipython 等单独的程序。你没有问那个问题,但你选择了这样的答案作为你最喜欢的解决方案:(
您可能期望的一般解决方案是在终端中为标准错误着色。不幸的是,由于有很多复杂性,无法做到这一点,例如您的提示被发送到标准错误。
试试这个示例 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模块。