退出后,箭头和制表键在SBT 1.0.3控制台中不起作用

时间:2018-01-26 05:11:01

标签: sbt

我遇到类似的问题:Arrow and tab keys not working in sbt 1.0.3 console但是在退出与:q的REPL会话后,我只会失去箭头/标签功能,然后重新启动它。

为了排除项目特定的设置,我使用以下方法创建了一个虚拟SBT项目:

» sbt new scala/hello-world.g8

如果我运行console,我会得到预期的箭头/标签键行为:

sbt:hello-world> console
[info] Starting scala interpreter...
Welcome to Scala 2.12.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_152).
Type in expressions for evaluation. Or try :help.

scala> import cats._
import cats._

但是,如果我退出与:q的控制台会话然后重新启动它,我将丢失相应的箭头/标签键行为(输入是向上箭头):

scala> :q

[success] Total time: 121 s, completed Jan 25, 2018 8:59:07 PM
sbt:hello-world> console
[info] Starting scala interpreter...
Welcome to Scala 2.12.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_152).
Type in expressions for evaluation. Or try :help.

scala> ^[[A

请注意,箭头键继续在SBT shell中工作,重新进入控制台会话时,我只会丢失正确的行为。

我已经证实这只适用于SBT 1.0.3;我得到了SBT 0.13.16的箭头和标签键的预期(正确)行为。我没有任何全局SBT设置,我的JAVA_OPTS是:-Xmx8g -Dfile.encoding=UTF-8

1 个答案:

答案 0 :(得分:3)

经过一番挖掘,看起来我遇到了这个问题:https://github.com/sbt/sbt/issues/3482

根据那里的讨论,我确认在我的REPL中运行jline.TerminalFactory.get.init恢复了箭头/标签键的正常行为。

截至SBT 1.1.0(可能更早),这已得到修复。我已经更新到1.1.0,现在一切正常。在这里记录后代。