Como ativar todas as teclas de ligação padrão do modo de edição vi no bash?

Como ativar todas as teclas de ligação padrão do modo de edição vi no bash?

Estou usando o modo de edição vi no Bash. De acordo com man readline, existem algumas chaves de ligação padrão funcionando no modo de edição vi. Algumas teclas funcionam bem, mas outras teclas padrão não funcionam.

Por exemplo, man readlinediz,

VI Command Mode functions
...
         "C-E"  emacs-editing-mode
...

Mas bind -pna minha caixa Linux diz que 'emacs-editing-mode' não está vinculado a nenhuma chave.

$ bind -p | grep emacs-editing
# emacs-editing-mode (not bound)

Esta é uma situação normal? Como ativar todas as teclas de ligação padrão do modo de edição vi no bash? Preciso vincular as chaves manualmente em .inputrc?

Responder1

Bash modifica algumas ligações readline padrão, incluindo esta. O código está noinitialize_readlinefuncionar embashline.c.

/* In Bash, the user can switch editing modes with "set -o [vi emacs]",
   so it is not necessary to allow C-M-j for context switching.  Turn
   off this occasionally confusing behaviour. */

As teclas de mudança de modo são as únicas que não estão vinculadas. Algumas chaves adicionais são vinculadas (por exemplo, para conclusão específica do bash, como M-$para completar nomes de variáveis).

informação relacionada