如何禁用彩色终端输出sbt / play?

时间:2010-11-24 12:56:15

标签: scala playframework sbt

我想禁用从sbt / play记录的颜色转义码。这可能吗?如果是,有没有办法在不更改配置的情况下执行此操作 - 即通过命令行开关或系统属性。

5 个答案:

答案 0 :(得分:54)

您只需将系统属性sbt.log.noformat设置为true即可。如果你想要,例如在Vim中使用SBT,你可以创建一个这样的脚本:

#!/bin/bash
java -Dsbt.log.noformat=true $JAVA_OPTS -jar "${HOME}/bin/sbt-launch.jar" "$@"

答案 1 :(得分:48)

从版本0.13.8(可能更早)开始,您现在只需使用-no-colors选项即可。 e.g。

sbt -no-colors test

答案 2 :(得分:2)

这听起来像您的平台与实际的jline.terminal属性不匹配。我只是在这里猜测,但是当我在Windows命令行上传递参数时,我会看到颜色转义码。

因此,您必须确保该属性与您的平台相匹配,即Windows上的WindowsTerminal和Unix上的UnixTerminal。

如果这没有帮助,那么您可能会使用不受支持的平台,website建议使用该平台:

-Djline.terminal=jline.UnsupportedTerminal

答案 3 :(得分:0)

嗯,你可以通过安装Cygwin并传递这个参数来获取颜色:

-Djline.terminal=jline.UnixTerminal

所以我会查找jline参数以查看禁用颜色编码的内容。

答案 4 :(得分:0)

我可以通过添加:

从Cygwin的SBT获得彩色输出
-Djline.terminal=jline.UnixTerminal

另外我发现我还需要将以下行添加到Cygwin.bat:

set CYGWIN=tty ntsec

之后添加SBT提供非常漂亮的彩色输出。另外我建议查看Console2,因为它可以挂钩Cygwin,但在我看来提供了一个更好的界面:

http://sourceforge.net/projects/console/