Terminal 给B&;基于终端的应用程序?

Terminal 给B&;基于终端的应用程序?,terminal,Terminal,是否有任何软件会自动向不支持颜色的基于终端的应用程序添加终端颜色 它将如何工作?好的,软件至少可以尝试以语法高亮显示的方式识别源代码(尽管大多数语法高亮显示的源代码树的某些部分在屏幕外会有问题),并且这种通用方法可以扩展到许多其他更人性化的数据形式;例如,日期、时间、金钱、电子邮件地址等很容易自动识别。取决于你所说的基于终端的应用程序。如果它只是写入标准输出,那么理论上,你可以将它传输到一个过滤器,该过滤器执行你的建议:“解析输入并修改输出”,例如,如果它看到一个关键字,根据你的终端的要求将其包

是否有任何软件会自动向不支持颜色的基于终端的应用程序添加终端颜色


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

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


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

问题有两个部分:

1) 通常我如何添加颜色?这些信号是通过

例如:

$ 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

嗯,这是个好的开始。如果我对regexI有很好的直觉的话,我想我只需要五分钟就可以用基于标准输出的应用程序来写一些东西。我想我真正需要问的是:我如何通过重写器“管道”终端本身(而不是标准输出程序)……我想你可以做到,但终端“应用程序”的时代早已过去了。你想要哪个应用程序?