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 readline
diz,
VI Command Mode functions
...
"C-E" emacs-editing-mode
...
Mas bind -p
na 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_readline
funcionar 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).