【问题标题】:cygwin shows wrong bracketscygwin 显示错误的括号
【发布时间】:2021-02-10 19:58:40
【问题描述】:

您好,我在 Win10 机器上安装了 cygwin 3.1.5 版。例如,当我使用 maven 时,输出并不真正正确。方括号以错误的方式显示。这里是一个例子

[?[1;34mINFO?[m] ?[1m------------------------------------------------------------------------?[m
[?[1;34mINFO?[m] ?[1;32mBUILD SUCCESS?[m
[?[1;34mINFO?[m] ?[1m------------------------------------------------------------------------?[m
[?[1;34mINFO?[m] Total time:  2:42 min
[?[1;34mINFO?[m] Finished at: 2020-06-10T15:26:07+02:00
[?[1;34mINFO?[m] ?[1m------------------------------------------------------------------------?[m

我无法确定这是否是语言环境问题,因为我不明白如何更改它以及是否真的存在问题。你们有什么建议吗?

更新 -11.06.2020

我发现问题可能是 maven 版本。对我来说,这听起来很奇怪。我运行 maven 3.6.3 版: https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000687110-Using-Mingw-as-terminal-doesn-t-display-ANSI-colors-in-Maven-output

非常感谢

【问题讨论】:

  • 那些奇怪的大括号是为了改变“INFO”这个词的颜色。它们是更改颜色的控制代码,例如"ESC [ 1;34m" 和 "ESC [ m" 来重置它。大概错误和警告都有不同的颜色。你在 mintty 终端上运行 cygwin 吗?试试看。您是否通过或多或少的方式运行输出?你可以试试“less -r”。 IIRC,maven 是一个 Java 程序,所以它在 cygwin 中可能无法正常工作。尝试在您的问题中添加 Maven 标签,并删除编码以改善目标受众。
  • 感谢您的建议。问题是我从 intellij 作为终端运行 cygwin。我尝试了 mintty 但这导致了 intellij 的一个窗口。这对我来说不是一个真正的选择。但我发现了我添加到上述说明中的另一个链接。
  • 在OS终端能用吗?
  • I found that probably the maven version could be the problem - 您可以在设置中更改 Maven 版本(macOS 上的首选项)|构建、执行、部署 |构建工具 |马文 | Maven 主目录。下载 Maven 3.5.0 版本并为 IDE 设置是否有帮助?
  • 这已在 Maven 3.8.2 中修复

标签: maven intellij-idea cygwin


【解决方案1】:

检查您的 TERM 环境属性并确保将其设置为“cygwin”。例如,

TERM="cygwin";出口期限

【讨论】:

    【解决方案2】:

    如在 cygwin 上的 https://stackoverflow.com/a/62971169 建议,如果您将输出通过管道传输到 tee 就可以了!!!

    您可以使用类似以下功能的函数为 mvn 命令起别名:

    function mvn() {  $M2_HOME/bin/mvn $@ | tee }
    

    在你的 .bash_profile.bash_alias

    【讨论】:

    • 好主意。但是为了安全起见,您真的应该在$@ 周围加上双引号。见stackoverflow.com/questions/37141039/…
    • 请注意,我的问题不同 - 颜色和括号显示正常,但它在输出中添加(显然)随机空格 - 在包路径和事物的中间。相同的解决方案解决了这个问题。
    【解决方案3】:

    最后我的解决方案是:

    我将 cygwin 路径放在 PATH 变量中。

    现在我不再运行 cygwin 本身,但是当我启动 cmd.exe 时我直接拥有这些功能

    【讨论】:

      【解决方案4】:

      我在 Cygwin 中使用 Maven 3.6.3 时遇到了同样的问题。

      这是一个 Maven 3rd 库的问题:Jansi

      Maven 3.6.3 使用 Jansi 1.1.17,但在 Jansi 1.1.18 中添加了对 Cygwin 的支持。请参阅此Jansi bug 和此Jansi commit

      我在阅读了以下web page 并查看了 Maven 和 Jansi 代码后得出了这个结论。

      也许我们可以说服 Maven 人员以某种方式切换到更新的 Jansi 库 :)

      【讨论】:

      • 尝试下载 jansi 1.18 并替换 1.17.1。还是同样的问题。
      • 这里是描述问题和修复的错误:github.com/fusesource/jansi/issues/94 我刚刚用 maven 3.8.2 进行了测试,它可以工作!
      【解决方案5】:

      也许不是一个确定的答案,但如果你把所有东西都用管道传输到 egrep,颜色就会回来。

      mvn clean install | egrep ".*"
      

      【讨论】:

        猜你喜欢
        • 2018-12-06
        • 2020-08-05
        • 1970-01-01
        • 2011-08-10
        • 2015-12-13
        • 1970-01-01
        • 1970-01-01
        • 2016-11-20
        • 2022-01-08
        相关资源
        最近更新 更多