我需要一些工具在Windows上正确显示包含ANSI代码的文本。不需要完全支持,但至少需要支持着色/加粗。
原因:我的记录器/调试模块使用ANSI代码生成漂亮的渲染输出,并使用重要部分进行颜色编码。这在串行终端上进行调试时非常有帮助,但如果我将调试转储到文件或将其复制粘贴到Windows上的文本编辑器中(交互式远程调试并不总是可行),最好的情况是所有ANSI代码都被剥离,最坏的情况是它们被呈现为垃圾字符,遮盖了真实数据。希望能够提供基本的编辑功能,以便能够挑选特定部分、注释等。
我需要一些工具在Windows上正确显示包含ANSI代码的文本。不需要完全支持,但至少需要支持着色/加粗。
原因:我的记录器/调试模块使用ANSI代码生成漂亮的渲染输出,并使用重要部分进行颜色编码。这在串行终端上进行调试时非常有帮助,但如果我将调试转储到文件或将其复制粘贴到Windows上的文本编辑器中(交互式远程调试并不总是可行),最好的情况是所有ANSI代码都被剥离,最坏的情况是它们被呈现为垃圾字符,遮盖了真实数据。希望能够提供基本的编辑功能,以便能够挑选特定部分、注释等。
我一直在寻找一种解决方案来显示ANSI颜色(用于程序调试输出可读性),偶然间发现了Sublime Text(付费软件,带有试用版http://www.sublimetext.com/)和ANSIescape插件(https://github.com/aziz/SublimeANSI或通过package control安装)。
它支持着色,并且会识别粗体的转义字符但不会显示出来,尽管可以在设置文件中为其指定特殊颜色。值得注意的是,此插件以只读模式显示文本,如需编辑则需要关闭它。
这里是GitHub提供的屏幕截图,我个人已经尝试过并验证了其有效性:
还有一个针对vim的不同插件,它根据ANSI代码对文本进行着色。
http://www.vim.org/scripts/script.php?script_id=302
但是,虽然它会用正确的颜色突出显示文本,但它会保留ANSI代码本身(以一种淡化的、接近背景的颜色),这可能会破坏文件中的任何对齐格式,并使其更难以移动文件(需要通过大量的“空白区域”才能定位光标,如果单词中间有ansi代码,则搜索不匹配等)。它可以利用一个补丁来隐藏代码,但这需要从源代码重新编译vim。
是的,如果您不是vim用户,建议vim并不是很有帮助,它有太大的学习曲线,我知道。但对于那些vim用户来说,它可能很有用。
如果emacs不能做到这一点,我会感到惊讶。 至少可以使用嵌入式shell。 有:
更新:正如所指出的,它们只是术语输出着色器。但是如果您也可以在emacs中编辑shell缓冲区内容,例如:cat file
&& 着色。
但等一下,我刚刚发现了这些:
如果您的应用程序的调试日志通过1个类/函数进行处理,您可以尝试将输出拆分为以下两部分:
对于您的应用程序,所有日志都会发送到此类中,而此类会将输出拆分为终端/控制台和文件。
在您的日志记录类中创建一个“标准”,以指定颜色和加粗(例如,预定义代码如Ctrl-A表示红色,Ctrl-B表示加粗,...或在日志记录类中设置颜色和加粗的特定方法,甚至是ANSI代码),并在您的中央日志记录类中将其转换为:
或者,我认为您也可以使用富文本代替HTML,但我不知道富文本的所有可能性,因此您可能需要查找相关信息。