彩色terminal输出如何被禁止/播放?

我想禁用从sbt / playlogging的颜色转义码。 这可能吗? 如果是这样,有没有办法做到这一点,而不需要改变configuration – 即通过命令行开关或系统属性。

您可以简单地将系统属性sbt.log.noformat设置为true 。 如果你想在Vim中使用SBT,你可以创build一个如下的脚本:

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

从版本0.13.8 (也可能更早)开始,您现在可以简单地使用-no-colors选项来解决问题。 例如

 sbt -no-colors test 

这听起来像你的平台不符合实际的jline.terminal属性。 我只是猜测在这里,但是当我通过丹尼尔build议在Windows命令行上传递参数,我也看到颜色转义代码。

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

如果这没有帮助,那么你可能在一个不受支持的平台,在这种情况下, 网站build议使用:

 -Djline.terminal=jline.UnsupportedTerminal 

那么,你可以通过安装Cygwin并传递这个参数来获得 Windows上的颜色:

 -Djline.terminal=jline.UnixTerminal 

所以我会查找jline参数来查看什么禁用了颜色编码。

我能够从Cytwin中的SBT中获得彩色输出:

 -Djline.terminal=jline.UnixTerminal 

另外我想通了,我还需要添加以下行Cygwin.bat:

 set CYGWIN=tty ntsec 

之后添加SBT给出非常好的彩色输出。 此外,我build议看看Console2,因为它可以通过Cygwin钩,但提供了一个更好的接口在我看来:

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