我遇到类似的问题: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
答案 0 :(得分:3)
经过一番挖掘,看起来我遇到了这个问题:https://github.com/sbt/sbt/issues/3482
根据那里的讨论,我确认在我的REPL中运行jline.TerminalFactory.get.init
恢复了箭头/标签键的正常行为。
截至SBT 1.1.0(可能更早),这已得到修复。我已经更新到1.1.0,现在一切正常。在这里记录后代。