1

我已将 Git Bash 添加到 Windows 终端,如将 Git-Bash 添加到新的 Windows 终端中所述。我的个人资料如下所示:

{
    "guid": "{00000000-0000-0000-ba54-000000000002}",
    "commandline": "%PROGRAMFILES%/git/usr/bin/bash.exe -i -l",
    "icon": "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico",
    "name": "Git Bash",
    "startingDirectory": "%USERPROFILE%",
}

我有一个 Picocli 应用程序,它具有帮助消息的彩色输出。当我在 Windows 终端的 Git Bash 中调用帮助消息时,它会打印 ANSI 颜色代码而不是为文本着色。为了演示这种行为,我使用了 Picocli 文档的示例应用程序:

在 Windows 终端的 git bash 中未呈现 ansi 颜色代码

当我在 Git Bash 的终端上运行相同的命令时,颜色会正确呈现:

windows git bash终端中正确的颜色输出

问题

如何让 Windows 终端中的 Git Bash 在 Picocli 应用程序中呈现 ANSI 颜色?

附加信息

如下图所示,在 Windows 终端中的 Git Bash 中可能会发生正确的文本着色(我用机器人框架演示了这一点,它不使用 Picocli),所以我的问题是 Picocli 特有的。

在 Windows 终端中的 git bash 中着色

4

1 回答 1

1

为了在 Windows 上显示 ansi 颜色,我强烈建议应用程序将 Jansi 库与 picocli 结合使用。

除非您使用的特定软件(例如 java)通过调用带有 ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400) 标志的SetConsoleMode API来启用 ANSI 处理(java 没有),否则您不会看到颜色或获得该应用程序的 ANSI 处理。

Jansi 解决了这个问题。

有关更多详细信息,请参阅:https ://picocli.info/#_windows

于 2021-04-03T11:51:19.880 回答