Git Bash в терминале Windows не отображает цветовые коды Picocli ANSI

Я добавил 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, которое имеет цветной вывод для справочного сообщения. Когда я вызываю справочное сообщение в Git Bash в Терминале Windows, он печатает цветовые коды ANSI вместо того, чтобы раскрашивать текст. Чтобы продемонстрировать это поведение, я использую пример приложения из документации Picocli:

Цветовые коды ansi не отображаются в git bash в терминале Windows

Когда я запускаю ту же команду на терминале Git Bash, цвета отображаются правильно:

правильный вывод цвета в windows git bash terminal

Вопрос

Как я могу заставить Git Bash в Windows Terminal отображать цвета ANSI в приложении Picocli?

Дополнительная информация

Как показано на изображении ниже, правильная окраска текста в Git Bash в Windows Terminal может произойти (я демонстрирую это с помощью Robot Framework, который не использует Picocli), поэтому моя проблема специфична для Picocli.

раскраска в git bash в терминале Windows


person HerCerM    schedule 03.04.2021    source источник


Ответы (1)


Для отображения цветов ansi в Windows я настоятельно рекомендую приложениям использовать библиотеку Jansi в сочетании с picocli.

Если конкретное программное обеспечение, которое вы используете (например, java), не поддерживает обработку ANSI, вызывая SetConsoleMode API с флагом ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400) (в Java нет), вы не увидите цвета и не получите обработку ANSI для этого приложения.

Янси решает эту проблему.

Для получения дополнительной информации см .: https://picocli.info/#_windows.

person Remko Popma    schedule 03.04.2021