Я хотел бы отключить коды эвакуации цвета, записанные из sbt/play. Это возможно? И если это так, есть ли способ сделать это, не внося изменения в конфигурацию, то есть с помощью командной строки или системного свойства.
Как можно отключить цветной вывод терминала для sbt/play?
Ответ 1
Вы можете просто установить системное свойство sbt.log.noformat
на true
. Если вы хотите, например, используйте SBT внутри Vim, вы можете создать script следующим образом:
#!/bin/bash
java -Dsbt.log.noformat=true $JAVA_OPTS -jar "${HOME}/bin/sbt-launch.jar" "[email protected]"
Ответ 2
Начиная с версии 0.13.8
(и, возможно, раньше), вы можете просто использовать опцию -no-colors
для sbt. например.
sbt -no-colors test
Ответ 3
Это похоже на то, что ваша платформа не соответствует реальному свойству jline.terminal. Я просто угадываю здесь, но когда я передаю параметр, предложенный Даниэлем в командной строке Windows, я также вижу цветовые escape-коды.
Следовательно, вы должны убедиться, что свойство соответствует вашей платформе, то есть WindowsTerminal на Windows и UnixTerminal на Unix.
Если это не поможет, вы можете оказаться на неподдерживаемой платформе, и в этом случае веб-сайт предлагает использовать:
-Djline.terminal=jline.UnsupportedTerminal
Ответ 4
Ну, вы можете получить цвета в Windows, установив Cygwin и передав этот параметр:
-Djline.terminal=jline.UnixTerminal
Итак, я просмотрел параметры jline, чтобы узнать, что отключает цветовое кодирование.
Ответ 5
Мне удалось получить цветной вывод из SBT в Cygwin, добавив:
-Djline.terminal=jline.UnixTerminal
Кроме того, я понял, что мне также необходимо добавить следующую строку в Cygwin.bat:
set CYGWIN=tty ntsec
После этого SBT дает очень приятный цветной выход. Кроме того, я бы порекомендовал посмотреть на Console2, поскольку он может подключаться через Cygwin, но, на мой взгляд, обеспечивает гораздо лучший интерфейс: