在Windows 7上使用SBT的箭头键行为不正确

时间:2014-10-28 09:11:02

标签: cygwin sbt jline

我在Windows 7上使用SBT 0.13.6,我正在使用Cygwin(bash shell)运行它。我的箭头键有问题:向上箭头向上移动光标,而我希望它循环显示命令历史记录(我认为这是默认应该做的)。

问题似乎是在终端上打印的内容。当我按下:[向上箭头] [输入]时,执行执行上一个命令。但是我在终端中看到的是光标向上移动一行,在输入之后,它会打印上一个命令并执行它。

当然,它应该在我按下向上箭头后立即打印上一个命令,它不应该移动光标(至少不是垂直的)

SBT中的命令行由JLine 2处理。在跟踪模式下运行JLine我可以看到它确实识别了按键,并且它已将箭头向上映射到“previous-history”,但终端未正确更新。

我还遇到了一个问题,我必须手动为要输入的命令插入行尾字符,这是通过在我的SBT启动脚本中添加以下选项来修复的:

-Djline.terminal=unix

我也尝试了其他选项(赢,自动,关闭等)。我已将以下行放在我的主目录中的文件jline.inputrc中,但它没有帮助:

"\e[A": previous-history
"\e[B": next-history

事实上我认为它不应该有所帮助,因为我可以看到按键被正确识别并映射到正确的命令。

行为不依赖于我使用的箭头键(数字小键盘上的箭头键)。

解决方法是直接从Windows命令shell(cmd.exe)运行SBT。

有没有人知道解决这个问题的方法,以便命令历史循环在Cygwin中按预期工作?

0 个答案:

没有答案