在sbt中vi命令行编辑是否中断?

在sbt中vi命令行编辑是否中断?,sbt,Sbt,My.inputrc文件将编辑模式配置为“vi”。在最新的sbt版本中(从13.10开始),我的交互式命令行默认为vi的命令模式,而不是插入模式,因此每次单击return键时,我都必须输入“I”或“a”,然后才能键入命令。13.10之前的版本做了更典型的默认插入模式,就像bash一样 这是虫子吗?有解决方法吗?已修复--我的.inputrc中有另一行“set keymap vi”导致了问题。我不知道为什么或者什么时候把它放在那里,但我把它取下来了,一切都恢复正常。sbt在引擎盖下使用jline,

My.inputrc文件将编辑模式配置为“vi”。在最新的sbt版本中(从13.10开始),我的交互式命令行默认为vi的命令模式,而不是插入模式,因此每次单击return键时,我都必须输入“I”或“a”,然后才能键入命令。13.10之前的版本做了更典型的默认插入模式,就像bash一样


这是虫子吗?有解决方法吗?

已修复--我的.inputrc中有另一行“set keymap vi”导致了问题。我不知道为什么或者什么时候把它放在那里,但我把它取下来了,一切都恢复正常。

sbt
在引擎盖下使用jline,因此受到
~/.inputrc
配置的影响。jline是以GNU读取行为模型的,因此,拥有
set keymap vi
应该指示jline。(这不是一个bug,稍后会有更多内容。)如果您想保留keymap声明,并且想要插入行为,请使用
set keymap vi insert

至于缺陷,sbt使用的是,而sbt使用的是。在该范围内,我们发现:


宾果
vi
keymap从插入模式更改为移动模式。

我认为这是一个错误,只是尝试在
中设置
设置编辑模式vi
。inputrc
并运行SBT 0.13.12–我发现其中的命令行没有问题。感谢检查,Alexander。它让我找到了修复方法,从我的.inputcno中删除了“set keymap vi”行,keymap行在我的.inputrc文件中已经至少四年了。如果我在build.properties中将sbt版本更改为0.13.9,那么无论是否使用keymap行,它都可以正常工作。只有从0.13.10开始,当键映射行在其中时,它才默认为命令模式。但我认为sbt使用的是jline,而不是readline,所以可能这就是变化发生的地方。@ecto这个答案值得赏金好的,谢谢Alexander。事实上,我认为你的回答值得赏金,因为它让我找到了解决办法,但因为它是一个评论,而不是一个答案,我不能。这个答案是在我已经解决了这个问题之后出现的,它附加了一些更多的信息,但对任何事情都没有帮助。但我会接受你的建议,再次感谢你。