在sbt中是否破坏了vi命令行编辑?

时间:2016-12-06 20:42:21

标签: sbt

我的.inputrc文件将编辑模式配置为'vi'。在最近的sbt版本中(从13.10开始),我的交互式命令行默认为vi的命令模式而不是插入模式,所以每次点击返回时我都必须输入'i'或'a'才能输入命令。 13.10之前的版本执行更典型的默认为插入模式的操作,比如bash。

这是一个错误吗?有解决方法吗?

2 个答案:

答案 0 :(得分:2)

已修复 - 我的.inputrc中有另一行'set keymap vi'导致问题。我不知道为什么或当我把它放在那里,但我把它删除了,事情又恢复了正常。

答案 1 :(得分:1)

sbt使用jline,因此会受到~/.inputrc配置的影响。 jline是在GNU读取线上建模的,因此,set keymap vi 应该指示jline为begin in command mode。 (它不是一个错误,更多关于这一点。)如果你想保留keymap声明,并且你想要插入行为,请使用set keymap vi-insert

关于bugginess,sbt 0.13.9使用jline 2.11而sbt 0.13.10使用jline 2.13。该范围内有136 commits,我们在其中找到this change

Changes to KeyMaps.java between jline 2.11 and 2.13

宾果。 vi键映射将更改为移动模式插入模式。