【问题标题】:How can I have a terminal's error messages colored?如何使终端的错误消息着色?
【发布时间】:2010-10-01 22:44:26
【问题描述】:

我希望在我的终端中看到五颜六色的错误,例如:

【问题讨论】:

    标签: macos bash terminal


    【解决方案1】:

    IPython 将语法高亮显示 Python 代码和堆栈跟踪,如您提供的示例所示(实际上是 Python 堆栈跟踪)。

    您链接到的示例实际上并没有在用户控制台上突出显示语法,也没有得到他们的 shell 的支持,而是在上传后由 Stack Overflow 网站突出显示。

    如果你想要一个对新手友好的 UNIX shell,它可以进行某种程度的通用语法突出显示,我推荐the fish shell

    【讨论】:

      【解决方案2】:

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

      GRC,代表 Generic Colouriser,用于美化您的日志文件或命令输出。它打包在主要发行版上。我已经用它很好地为我的 make 输出着色。 GRC 通常用于具有“grc 命令”等别名的常用命令。还有其他着色器,网站有时也有自己独特的。

      很多程序都使用传统的命令行开关 --color=auto。 --color=always 即使在非交互式 shell 中也会发生颜色,稍后使用诸如 less -R 之类的终端代码感知命令可以很好地查看记录的命令。

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

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

      您可能期望的一般解决方案是在终端中为标准错误着色。不幸的是,由于有很多复杂性,例如您的提示被发送到标准错误,因此无法执行此操作。

      【讨论】:

        【解决方案3】:

        试试这个示例 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 模块。

        【讨论】:

          猜你喜欢
          • 2014-09-26
          • 1970-01-01
          • 2015-08-08
          • 2021-12-04
          • 1970-01-01
          • 2013-11-25
          • 2020-08-05
          • 1970-01-01
          • 2023-03-06
          相关资源
          最近更新 更多