如何设置系统属性jline.terminal(在cygwin的文件中键入时不修复回声)?

时间:2014-09-22 13:10:32

标签: sbt mintty

我已开始在cygwin,上使用sbt,但遇到的问题是我的输入不会在console中回显。

advice之后,sbt现在回声,例如:

$ sbt
[info] Loading project definition from D:\cygwin\home\Administrator\scala-2.11.2\coursera\example\project\project
[info] Loading project definition from D:\cygwin\home\Administrator\scala-2.11.2\coursera\example\project
[info] Set current project to progfun-example (in build file:/D:/cygwin/home/Administrator/scala-2.11.2/coursera/example/)
> ; eval System.setProperty("jline.terminal", "scala.tools.jline.UnixTerminal")
[info] ans: java.lang.String = jline.UnixTerminal
> console
[info] Starting scala interpreter...
[info] 
Welcome to Scala version 2.10.4 (Java HotSpot(TM) Client VM, Java 1.7.0_67).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import example.Lists._
import example.Lists._

scala> 

我尝试通过在export SBT_OPTS="-Djline.terminal=scala.tools.jline.UnixTerminal"中输入行~/.sbtconfig来自动执行此修复,但我可能没有使用正确的语法,因为回显似乎不起作用。

如何让sbt console自动使用; eval System.setProperty("jline.terminal", "scala.tools.jline.UnixTerminal")

1 个答案:

答案 0 :(得分:1)

在sbt中发现了很多...

> inspect initialize
[info] Setting: Unit = ()
[info] Description:
[info]  A convenience setting for performing side-effects during initialization.
[info] Provided by:
[info]  */*:initialize
[info] Defined at:
[info]  (sbt.Defaults) Defaults.scala:153
[info] Delegates:
[info]  *:initialize
[info]  {.}/*:initialize
[info]  */*:initialize
[info] Related:
[info]  */*:initialize

您可以利用名为initialize来执行初始化期间的副作用。通过~/.sbt/0.13/default.sbt中的以下内容,您可以实现System.setProperty

initialize := {
  System.setProperty("jline.terminal", "scala.tools.jline.UnixTerminal")
}

在sbt shell中执行eval sys.props("jline.terminal")检查它。它在console中正常工作(调用eval时删除sys.props)。