将地图jj映射到inputrc中的Esc(readline)

loc*_*jay 29 vi vim bash zsh readline

我如何映射jjEscinputrc,以便使用GNU Readline(python,mongoshell,...)获取应用程序

所有在zsh上工作正常使用:

bindkey -M viins 'jj' vi-cmd-mode
Run Code Online (Sandbox Code Playgroud)

这是我目前的inputrc:

set editing-mode vi
set keymap vi

# turn off the stupid bell
set bell-style none
$if mode=vi
    set keymap vi-command
    "gg": beginning-of-history
    "G": end-of-history
    #"jj": vi-movement-mode
    set keymap vi-insert
    "\C-w": backward-kill-word
    "\C-p": history-search-backward
$endif
Run Code Online (Sandbox Code Playgroud)

Eht*_*ury 29

您应该重新排列inputrc,以便后面跟着注释行set keymap vi-insert.

像这样:

set bell-style none
$if mode=vi
    set keymap vi-command
    "gg": beginning-of-history
    "G": end-of-history
    set keymap vi-insert       #notice how the "jj" movement is
    "jj": vi-movement-mode     #after 'set keymap vi-insert'?
    "\C-w": backward-kill-word
    "\C-p": history-search-backward
$endif
Run Code Online (Sandbox Code Playgroud)

  • 要显示适用于插入模式的内容以及适用于命令模式的内容,请参阅以下答案:http://superuser.com/questions/286781/readline-difference-between-vi-vi-move-vi-command-vi-insert -keymaps (2认同)