【问题标题】:Colorize B&W terminal-based apps?着色基于 B&W 终端的应用程序?
【发布时间】:2013-09-19 21:47:59
【问题描述】:

是否有任何软件可以自动将终端颜色添加到不支持颜色的基于终端的应用程序中?

它是如何工作的?好吧,该软件至少可以尝试以与语法高亮器相同的方式识别源代码(尽管大多数语法高亮器都会遇到源代码树的部分不在屏幕上的问题),并且这种通用方法可以扩展到许多其他更人性化的数据形式;例如,日期、时间、金钱、电子邮件地址等很容易自动识别。

【问题讨论】:

  • 我想我真正需要问的是:我如何通过重写器“管道”终端本身(而不是标准输出)......
  • 我想你可以做到,但终端“应用程序”的时代已经一去不复返了。你心目中的应用是什么?

标签: terminal


【解决方案1】:

问题分为两部分:

1) 一般如何添加颜色?这些通过ANSI Color Codes发出信号

例如:

$ echo -e "plain \033[0;36mcyan\033[0;0m"

您应该看到纯青色,带有“青色”。

2) 如何为我的特定应用添加颜色?对于写入标准输出的标准命令行实用程序,您可以将其通过管道传输到插入颜色代码的脚本:

$ echo "plain cyan" | sed 's/cyan/\\033[0;36mcyan\\033[0;0m/'
plain \033[0;36mcyan\033[0;0m
$ echo "plain cyan" | sed 's/cyan/\\\\033[0;36mcyan\\\\033[0;0m/' | while read x; do echo -e "$x"; done
plain cyan

【讨论】:

    【解决方案2】:

    取决于您所说的基于终端的应用程序的含义。如果它只是写入标准输出,那么理论上您可以将其通过管道传输到执行您建议的过滤器:“解析输入并修改输出”,例如如果它看到一个关键字,则按照终端的要求将其包装在“颜色标签”中。

    如果它使用诸如“诅咒”之类的东西来处理终端屏幕,我认为这几乎是不可能的。在单一终端类型上可能没问题,但我怀疑这将是一项重大努力。

    【讨论】:

    • 嗯嗯,这是一个好的开始。如果我对正则表达式有很好的直觉,我想我只需要五分钟就可以用基于标准输出的应用程序来写一些东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 2020-06-04
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2014-10-14
    相关资源
    最近更新 更多