readline:如何使用绑定将键盘映射从“emacs”更改为“vi-command”?

readline:如何使用绑定将键盘映射从“emacs”更改为“vi-command”?

在 bash(4.3.11(1)-release)中,我希望能够直接从emacs键盘映射更改为vi-command键盘映射。

使用show-mode-in-prompt on,我的前缀字符应该从 更改@:

如果我使用该vi-movement-mode命令,提示符将保持为@

如果我使用该vi-editing-mode命令,提示符将更改为+指示我正在使用vi-insert键盘映射,而不是所需的 target vi-command

如何通过绑定从键盘映射更改为键盘emacs映射?vi-command

答案1

以下.inputrc几行允许Meta / Alt+在和模式E之间切换。emacsvi-insert

j同时哞哞k将带你进入vi-command模式。

set show-mode-in-prompt on

set keymap emacs
"\ee": vi-editing-mode
"jk": "\eejk"
"kj": "\eejk"

set keymap vi-insert
"\ee": emacs-editing-mode
"jk": vi-movement-mode
"kj": vi-movement-mode

set keymap vi-command
"\ee": emacs-editing-mode

注意:唯一带有“kj”的英文单词是“blackjack”,没有单词包含“jk”)

注意:在v4.3.11(1) 中,如果您在bashto 下添加绑定以尝试直接切换到键盘映射,则提示不会更新(如果您有 ),因此需要此解决方法。keymap emacsvi-movement-modevi-commandshow-mode-in-prompt on

相关内容