在Eclipse IDE控制台中,如何复制没有转义码字符的文本输出

问题描述 投票:0回答:2

在 Windows 平台上运行的 Eclipse IDE 中,在调试代码时,我经常会将部分或全部控制台输出复制到文本编辑器。不幸的是,生成的文本充满了转义字符和特殊代码。它使信息更难以阅读。这些都没有明显地出现在 Eclipse 的实际控制台中。

长期以来,我一直对 Eclipse 处理复制文本格式的方式感到恼火。这是默认行为吗?可以修改它来复制输出而无需特殊代码和转义字符吗?理想情况下,我想仅使用基本的换行符、换行符和行尾控制字符来复制原始文本。

另外,我应该注意,我正在使用“Spring Tool Suite”(STS)定制版本,因此如果使用基本 Eclipse IDE,我的体验可能会有所不同......但我希望它是固有的日食本身。

控制台输出示例,如 Eclipse 中所示

2018-10-24T09:00:41.902-06:00  INFO  45304 --- [enerContainer-2] o.l.p.c.s.i.MyServiceIntegration  : writeContact contacts="1" timeMS="22"
2018-10-24T09:00:41.903-06:00  WARN  45304 --- [enerContainer-1] org.zzz.logging.LogService        : Error getting RequestInfo data. nested exception is ..."
2018-10-24T09:00:41.904-06:00  INFO  45304 --- [enerContainer-1] o.l.p.c.s.listener                : Processing contacts from Message ID: zlt223247 [contact.number.init]

复制到文本编辑器中时的样子(我尝试过多次)

2m2018-10-24T09:00:41.902-06:00ESC[0;39m [32m INFO[0;39m [35m45304[0;39m [2m---[0;39m [2m[enerContainer-2][0;39m [36mo.l.p.c.s.i.MyServiceIntegration  [0;39m [2m:[0;39m writeCtags tags="1" timeMS="22"
2m2018-10-24T09:00:41.903-06:00ESC[0;39m [33m WARN[0;39m [35m45304[0;39m [2m---[0;39m [2m[enerContainer-1][0;39m [36morg.zzz.logging.LogService     [0;39m [2m:[0;39m Error getting RequestInfo data. nested exception is..." 
2m2018-10-24T09:00:41.904-06:00ESC[0;39m [32m INFO[0;39m [35m45304[0;39m [2m---[0;39m [2m[enerContainer-1][0;39m [36mo.l.p.c.s.listener

如果左右滚动,您可以看到“复制的”控制台在标准文本编辑器中出现的乱码。如果有人知道如何复制输出的“干净”副本,我很想知道如何!

eclipse console copy
2个回答
1
投票

我也有同样的问题。我找到了解决该问题的几种方法:

  1. 这是 Spring 关于此问题的文档 - https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging.console-output.color-coded 。理论上,可以使用 spring.output.ansi.enabled=never 选项禁用颜色。然而,由于某种原因,它对我不起作用。

  2. 您可以使用 Eclipse 的插件 - “ANSI Escape in Console”。它工作正常,但有一个问题 - 它会减慢控制台的速度。

  3. 我偶然发现的。看起来 spring.output.ansi.enabled 参数默认设置为“DETECT”,即如果 Spring Boot 发现控制台支持“ANSI 转义字符”,那么它将把它们输出到控制台。 Eclipse 控制台的此参数可以在“运行 -> 运行配置...”中找到。我们找到所需的配置,并取消选中“Spring Boot”选项卡上的“ANSI 控制台输出”。

之前: 后:


0
投票

只需右键单击控制台并从下拉列表中选择“首选项”。 在弹出对话框中,导航至“控制台”->“ANSI 支持”并将其关闭(即取消选中“Enabel ANSO 支持”)。

完成。

© www.soinside.com 2019 - 2024. All rights reserved.