光标键箭头在SBT 0.13中无法正常工作。*。怀疑Jline。如何启用它们?

时间:2014-06-19 16:14:28

标签: windows scala sbt jline

SBT-0.7.7将JLine捆绑在发射器中并且工作正常。 E.g:

"C:\Program Files (x86)\Java\jre7\bin\java.exe"  -jar C:\scala\sbt-launch-0.7.7.jar

我可以使用光标键导航命令历史记录。它在SBT-0.13.5中不起作用:

"C:\Program Files (x86)\Java\jre7\bin\java.exe"  -jar C:\scala\sbt_launch_135.jar

当我按下光标键时,会显示可打印的字符,例如" pHpP"。在target / .history文件中,我们看到字符代码为" 0xE0 0x48 0xE0 0x50"。它在Java8和64位Java中是相同的。我还尝试了各种版本的SBT启动器和 jline.terminal 的各种值,如 -Djline.terminal = jline.AnsiWindowsTerminal 无济于事。我也试过 -Djline.WindowsTerminal.directConsole = false - 然后光标键根本不执行任何功能。在所有情况下,我都可以使用 CTRL + P CTRL + N 来浏览历史记录。

SBT-0.13。*从Ivy存储库加载JLine %HOMEPATH%.sbt \ boot \ scala-2.10.3 \ org.scala-sbt \ sbt \ 0.13.1 \ jline-2.11.jar keybindings.properties , WindowsTerminal.java 中的函数 readVirtualKey()处理光标键。所有版本的JLine都在一个临时目录中安装一个帮助DLL,如%HOMEPATH%\ AppData \ Local \ Temp \ _ jline_.dll ,这可能有效。

为什么它无法正常工作?如何使光标键工作?

1 个答案:

答案 0 :(得分:2)

尝试将以下属性传递给sbt进程,即:

sbt -Dinput.encoding=Cp1252

如上所述here