我想禁用从sbt / play记录的颜色转义码。这可能吗?如果是,有没有办法在不更改配置的情况下执行此操作 - 即通过命令行开关或系统属性。
答案 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,但在我看来提供了一个更好的界面: