Parece que não há maneira adequada de inserir um Esc na linha de comando.
Enquanto em vi-insert
mais alpha/numeric
chaves são usadas. Esc é bem distante, e qualquer acorde (como Alt-j
(que funciona)) parece mais complexo do que o desejado. Portanto, existe uma maneira de converter duas chaves em uma string configurável.
A solução funciona usando a ideia de Esta resposta
Basta adicionar isso a .inputrc
:
set editing-mode vi
set vi-ins-mode-string \e[6 q
set vi-cmd-mode-string \e[2 q
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
Por isso, independentemente de onde você inicia emacs
ou vi
, pressionar jk
colocará você no modo de comando vi no início da linha .
Além disso, permite alternar para o modo emacs
com Esc - e .