我希望这会像
一样直截了当Console.out.println( "Test " + Console.RED + " RED " + Console.RESET )
但没有任何反应,而是我看到了控制字符(例如"\033[31m"
)。我在sbt(sbt run
)和正常的IDEA运行配置运行中尝试了两种方法......
答案 0 :(得分:10)
如果你的控制台支持颜色,它会起作用。我只是通过putty在linux系统上尝试过它并获得了预期的结果。
编辑:如果您希望通过Windows执行此操作,可以使用Ansicon在标准命令提示符下提供着色。
答案 1 :(得分:6)
那里有很多Ruby宝石可以做到这一点,但对于Scala来说却没有那么多......: - )
答案 2 :(得分:1)
如果您使用的是scala 2.11+,则可以使用此库:https://github.com/backuity/ansi-interpolator
它使用宏在编译时转换字符串,并支持嵌套:
ansi"Text containing ansi tags such as %bold{bold text} or %underline{can be %yellow{nested}}"
// you can also use string interpolation:
val someMsg = "hey"
ansi"My msg %bold{in bold: $someMsg}"
答案 3 :(得分:0)
除了1)基本颜色之外,如果您还需要2)明亮和3)背景颜色,我建议您使用Jansi,它提供了摘要选项。
build.sbt:
libraryDependencies + =“ org.fusesource.jansi”%“ jansi”%“ 1.17.1”
答案 4 :(得分:0)
来自 Scala 标准库:
import scala.io.AnsiColor._
println(s"${REVERSED}${BOLD}My name ist ${GREEN}Green!${RESET} default font")
也适用于 IntelliJ 控制台