41

我需要一些工具来在 Windows 上正确显示包含 ANSI 代码的文本。不需要完全支持,但至少着色/粗体是必须的。

原因:我的 logger/debug 模块产生了很好的渲染丰富的输出,其中重要的部分使用 ANSI 代码着色。这在串行终端上调试时很有帮助,但是如果我将调试转储到文件中或将其复制粘贴到 Windows 上的文本编辑器中(交互式远程调试并不总是可行的),充其量所有的 ANSI 代码都被剥离,在最坏的情况下,它们会被渲染为掩盖真实数据的垃圾字符。如果能够挑选出特定的部分、注释等等,基本的编辑功能将不胜感激。

4

11 回答 11

12

开源编辑器Atom具有包language-ansi-styles。它支持除;r;g;b.

在此处输入图像描述 在此处输入图像描述

于 2017-08-10T09:33:15.477 回答
9

您可能对 ASCII/ANSI 实用程序有更多的运气,比如这里 列出的那些:ASCII/ANSI/NFO 实用程序列表

**注意:此页面上的某些文件可能已过时,您可能会在它们各自的主页上找到这些实用程序的更新版本。*

例如,可以在此处找到最新版本的 NFOPad

于 2010-02-19T20:37:47.297 回答
9

我一直在寻找一种显示 ANSI 颜色的解决方案(以提高程序调试输出的可读性),并偶然发现了带有ANSIescape包(https ://github.com/aziz/SublimeANSI或通过包控制安装)。

它支持着色并且粗体转义被识别但不显示,尽管可以在设置文件中为其分配特殊颜色。另外值得注意的是,这个插件以只读模式显示文本,如果需要编辑,需要关闭。

这是github上提供的截图,我亲身试过,验证了它的工作原理:

在此处输入图像描述

于 2015-05-16T14:23:25.653 回答
8

如果您主要对查看文件而不是编辑它感兴趣,Ansifilter 会将其转换为 HTML,然后您可以查看并至少在浏览器中搜索,或者如果 wordpad 足够好(很难想象),则为 RTF。呵呵,貌似下载页面上也有notepad++插件版本,如果能加载到notepad++就完美了。
http://www.andre-simon.de/doku/ansifilter/ansifilter.html

vim 还有一个不同的插件,可以根据 ANSI 代码为文本着色。
http://www.vim.org/scripts/script.php?script_id=302

然而,虽然它以正确的颜色突出显示文本,但它会将 ANSI 代码本身留在其中(以褪色、接近背景的颜色),这可能会弄乱文件中的任何对齐格式,并使其更难移动文件周围(大量的“空白空间”让光标穿过,如果中间有 ansi 代码,则搜索单词将不匹配,等等)。它也可以利用一个补丁来隐藏代码,但这需要打补丁,然后从源代码重新编译 vim 本身。

是的,如果你还不是 vim 用户,建议 vim 是非常无用的,我知道它的学习曲线太长了。但它可能对那里的 vim 用户有用。

于 2010-02-22T22:49:17.317 回答
3

我知道这不会有太大帮助——但我在 linux 上寻找完全相同的东西;只是试图查看一些内部包含 bash ANSI 颜色代码的日志输出。不幸的是,这些 ANSI 颜色代码分布在几行中——这意味着“cat”文件和管道到“less -R”、“most”和类似工具,只会显示颜色起源的起始行,而不是应该着色的后续行。

有趣的是,我认为像“nano”、“gedit”、“vim”之类的常用 Linux 工具将具有文本文件中的 ANSI 颜色代码的功能,但在这些文本文件中提供有关 ANSI 颜色的信息的情况非常有限编辑。我只找到了测试编辑器“joe”的 ANSI 颜色信息:

便宜的 ANSI 颜色!- http://tldp.org/LDP/LG/issue01to08/articles.html#ansi

但无法让那里的建议起作用(也无法让'emacs'工作,至少不能通过直接读取内部带有ANSI颜色字符的文本文件)。

好东西 - 如果您需要文本中的 ANSI 颜色,您似乎需要的是寻找上面推荐的 ASCII 艺术 / NFO 实用程序 - 我最终找到并为我工作的一个是tetradraw(通过 www .linux.org/apps/AppId_42.html ; 可以在 Ubuntu 中安装 sudo apt-get ... 实际上, tetradraw 是绘图/编辑器部分的名称 - 但是有一个单独的查看器也适用于 ANSI 颜色代码,四视图)。

好吧,谁会想到,您需要追踪一个 ASCII 艺术实用程序才能读取日志文件:)

无论如何,希望这也有助于进一步搜索适用于 Windows 的 ANSI 彩色文本编辑器。干杯!

于 2010-02-20T21:15:47.007 回答
2

如果您只想查看,那么终端程序“Tera Term”可以做到这一点。只需单击“文件”->“重播日志”并选择包含 ANSI 代码的文件。

您可以在此处下载 Tera Term:http: //logmett.com/index.php ?/download/tera-term-477-freeware.html

于 2013-03-22T12:24:25.347 回答
2

在 Emacs 中,只需在打开 .nfo 文件之前评估以下内容:

(add-to-list 'auto-coding-alist '("\\.nfo\\'" . cp437-dos))

于 2014-12-12T11:22:28.377 回答
1

我已经在 Andras Vass 引用的 URL 上测试了多个程序,但没有任何结果(它们不显示颜色,或者它们一直将 ANSI 代码显示为乱七八糟的字符)。

厌倦了搜索,我终于找到了 ANSIFilter(不是 Jeffson 引用的 NotePad++ 插件),这是唯一对我有用的。我已将它添加到 Windows 上下文菜单中,因此我现在可以轻松打开我的 ANSI 文本文件。

于 2014-12-13T23:32:42.660 回答
0

如果emacs不能做到这一点,我会感到惊讶。至少使用嵌入式外壳。有:

更新:正如已经指出的那样,它们只是术语输出着色器。但是,如果您也可以在 emacs中编辑shell缓冲区内容,例如。cat file&& 着色。

但是等一下,我刚刚找到了这些:

于 2010-02-16T09:50:03.977 回答
0

如果您的应用程序的调试日志记录通过 1 个类/函数,您可以尝试拆分输出,以便:

  • 类似 ANSI 的日志记录显示在终端/控制台上
  • 类似 HTML 的日志记录被写入文件

对于您的应用程序,所有日志记录都转到此类,并且此类将输出拆分为终端/控制台和文件。

在您的日志记录类中创建一个“标准”以指定颜色和粗体(例如,预定义代码如 Ctrl-A 表示红色,Ctrl-B 表示粗体,...,或日志记录类中用于设置颜色和粗体的特定方法,或甚至可能是 ANSI 代码),并在您的中央日志记录类中将其转换为:

  • 终端上正确的 ANSI 代码
  • 文件中正确的 HTML 代码

或者,我认为您也可以使用富文本而不是 HTML,但我不知道富文本的所有可能性,因此您可能需要查找此内容。

于 2010-02-21T22:16:41.270 回答
-5

你可以试试notepad++(见http://notepad-plus.sourceforge.net/uk/site.htm)。它非常强大(基于 Scintilla),并且可以选择查看不可打印的字符(如换行符等)。

于 2010-02-16T09:44:38.397 回答