在 inputrc 中为 vi 编辑模式设置 cmd 模式绑定

在 inputrc 中为 vi 编辑模式设置 cmd 模式绑定

我正在使用 vi 键.inputrc绑定

set editing-mode vi

然后我想为命令模式添加新的绑定,即使用KJ在我当前输入的历史记录中执行正向和反向搜索。我努力了:

C-K:history-search-backward
C-J:history-search-forward

...但这设置Ctrl Shift K为在插入模式下绑定到此搜索,而不是Shift K在命令模式下普通。

如果我使用:

K:history-search-backward
J:history-search-forward

...然后再次在插入模式下字母 K 和 J 必须进行搜索(这确实是不需要的)

设置新命令模式键的语法是什么.inputrc

答案1

建立在,我的结论是,应该改变的不是击键.inputrc,而是(从逻辑上讲)它应用的上下文:

$if mode=vi
set keymap vi-command
K:history-search-backward
J:history-search-forward
$endif

现在还有一个困难,在命令模式下,光标最多只能位于该行的最后一个字符,而不是像插入模式下那样位于倒数最后一个字符,因此搜索的模式不包括最后一个字符。例如,如果您输入fin然后发出Esc shift- K,它会搜索fi并可以完成file以及find

我认为没有有效的解决方法,所以我必须习惯插入模式Ctrl-shift作为K最方便的方法。

相关内容