在命令运行时使用 Vi 键绑定退出 Bash 中的插入模式

在命令运行时使用 Vi 键绑定退出 Bash 中的插入模式

我已经使用 Vi 键绑定设置了 bash,但是当命令完成运行时,它返回到插入模式而不是移动模式。我可以使用bind '"\C-M":vi-movement-mode'my.bashrc将回车键映射到移动模式,但这不允许运行键入的命令。
我可以用

bind '"jj":vi-movement-mode'
bind '"\C-M":"jj\n"'

当按下回车键时退出移动模式,但当命令完成时返回插入模式。

这很有用,因为这意味着我可以输入命令,然后使用“k”向后滚动命令历史记录,或使用“p”粘贴另一个命令,而不必每次都退出插入模式。

如何设置单个键绑定来运行命令并退出插入模式?

可能是不必要的信息,但我正在带有 Windows 终端的 cygwin 上运行(痛苦但必要)。

答案1

更新:与技术问题一样,我在发布问题 20 分钟后找到了答案(并且花了很长时间寻找解决方案)。我发现使用\njj而不是jj\n做到了这一点。不是特别好,但似乎有效。

为有相同问题的其他人更新了命令(放入.bashrc

bind '"jj":vi-movement-mode'
bind '"\C-M":"\njj"'

相关内容