Поддержка цвета ANSI с использованием Groovy в Windows XP
-
22-08-2019 - |
Вопрос
Пробуем примеры, найденные на pleac.sf.net, мне не удалось получить пример цветов ANSI для работы на моем компьютере с WinXP (отлично работает на MacOS).Я обнаружил, что на моем компьютере с WinXP в приглашениях cygwin и DOS groovysh --color
(и 'отличный --терминал=unix') отображает escape-коды, а не ожидаемую цветную подсказку. grep --color
отлично работает в терминале Cygwin.Я не могу найти ничего очевидного, что я делаю неправильно.Есть идеи?
Примечание: Я использую Groovy 1.6.0
Обновлять: Я попытался добавить ANSI.sys в мой config.nt, упомянутый здесь. Список рассылки Groovy-dev но это не решило проблему (пробовал также перезагрузку).
Решение
Дело в том, что вам придется добавить DOSONLY в ваш CONFIG.NT, чтобы драйвер ANSI.SYS работал, и тогда он будет работать только для COMMAND.COM, который эмулирует DOS 5.0.Обычные командные строки (CMD.EXE) вообще не поддерживают цвета ANSI.
Я мало что знаю о том, как Cygwin с этим справляется.
Другие советы
У меня та же проблема, мое решение уродливое, но простое:Труба Groovy выход в Cygwin Cat.exe Предположим, что ваш скрипт красный.
println "\u001B[31mI'm Red\u001B[0m Now not"
Затем из командной оболочки
groovy.bat red.groovy | cat
будет отображать правильные цвета.Конечно, вы можете написать свой собственный код, обрабатывающий коды ANSI.
На сайте Groovy написано, что нужно сделать это для cygwin:
groovysh --terminal=unix
Для командной оболочки winxp, насколько мне известно, вообще нет поддержки ANSI, даже в ansi.sys.Цвета поддерживаются только через некоторые API MS.
Обходной путь в cygwin — запустить xterm или rxvt и запустить его там.