问题描述
如 Adding Git-Bash to the new Windows Terminal 中所述,我已将 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 文档的 example application:
当我在 Git Bash 的终端上运行相同的命令时,颜色会正确呈现:
问题
如何在 Windows 终端中获取 Git Bash 以在 Picocli 应用程序中呈现 ANSI 颜色?
其他信息
如下图所示,在 Windows 终端中的 Git Bash 中可能会发生正确的文本着色(我用 Robot Framework 演示了这一点,它不使用 Picocli),所以我的问题是特定于 Picocli 的。
解决方法
为了在 Windows 上显示 ansi 颜色,我强烈建议应用程序结合使用 Jansi 库和 picocli。
除非您使用的特定软件(例如 java)通过调用带有 ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400) 标志的 SetConsoleMode API 启用 ANSI 处理(java 没有),否则您将看不到颜色或获得 ANSI 处理用于该应用程序。
Jansi 解决了这个问题。
有关详细信息,请参阅:https://picocli.info/#_windows