отобразить jj на Esc в inputrc (readline) - PullRequest
28 голосов
/ 27 июля 2011

Как я могу сопоставить jj с Esc в inputrc, чтобы его могли получать приложения, использующие GNU Readline (python, mongoshell, ...)

allотлично работает на zsh используя:

bindkey -M viins 'jj' vi-cmd-mode

это мой текущий 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

1 Ответ

28 голосов
/ 02 ноября 2011

Вы должны переставить 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
...