Поддержка цвета ANSI с использованием Groovy в Windows XP - PullRequest
0 голосов
/ 17 мая 2009

Испытывая примеры, найденные на pleac.sf.net , я не могу получить пример цветов ANSI для работы на моей коробке WinXP (отлично работает на MacOS). Я обнаружил, что на моем компьютере с WinXP в приглашениях cygwin и DOS groovysh --color'groovysh --terminal = unix' ) отображаются коды перехода, а не ожидаемая цветная подсказка. grep --color прекрасно работает в терминале cygwin. Я не могу найти ничего очевидного, что я делаю неправильно. Есть идеи?

Примечание: Я использую Groovy 1.6.0

Обновление: Я пытался добавить ANSI.sys в мой config.nt, упомянутый здесь Groovy-dev Mailing List , но это не устранило проблему (тоже попытался перезагрузиться) .

Ответы [ 4 ]

3 голосов
/ 27 января 2012

У меня та же проблема, мое решение некрасиво, но просто: труба заводной вывод в cygwin cat.exe Предположим, ваш скрипт red.groovy:

println "\u001B[31mI'm Red\u001B[0m Now not"

Затем из командной оболочки

groovy.bat red.groovy | cat

отобразит правильные цвета. Конечно, вы можете написать свой собственный нативный код, который обрабатывает коды ANSI.

1 голос
/ 11 сентября 2009

Дело в том, что вам нужно добавить DOSONLY в ваш CONFIG.NT, чтобы драйвер ANSI.SYS работал, и тогда он будет работать только для COMMAND.COM, который эмулирует DOS 5.0. Обычные командные строки (CMD.EXE) вообще не поддерживают цвета ANSI, на самом деле.

Я не знаю много о том, как Cygwin справляется с этим.

0 голосов
/ 27 июня 2009

Обходной путь в Cygwin - запустить xterm или rxvt и запустить его там.

0 голосов
/ 26 июня 2009

Сайт Groovy говорит, что нужно сделать это для cygwin:

groovysh --terminal=unix    

Насколько мне известно, для командной оболочки winxp поддержка ANSI отсутствует, даже с ansi.sys. Цвета поддерживаются только через некоторые API MS.

...