在Scala控制台中使用颜色

时间:2012-03-19 15:08:33

标签: scala console intellij-idea

我希望这会像

一样直截了当
Console.out.println( "Test " + Console.RED + " RED " + Console.RESET )

但没有任何反应,而是我看到了控制字符(例如"\033[31m")。我在sbt(sbt run)和正常的IDEA运行配置运行中尝试了两种方法......

5 个答案:

答案 0 :(得分:10)

如果你的控制台支持颜色,它会起作用。我只是通过putty在linux系统上尝试过它并获得了预期的结果。

编辑:如果您希望通过Windows执行此操作,可以使用Ansicon在标准命令提示符下提供着色。

答案 1 :(得分:6)

是的,上面的工作很好。 另外我发现将它们作为方法“.red”包装在String上非常简洁,就像在这个库中https://github.com/ktoso/scala-rainbow

一样

那里有很多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 控制台