readline: Como eu altero os keymaps de 'emacs' para 'vi-command' com uma ligação?

1

No bash (4.3.11 (1) -release), desejo alterar diretamente do emacs keymap para o vi-command keymap.

Com show-mode-in-prompt on , meu caractere de prefixo deve mudar de @ para : .

Se eu usar o comando vi-movement-mode , o prompt permanecerá como @ .

Se eu usar o comando vi-editing-mode , o prompt mudará para + indicando que estou usando o mapa de teclado vi-insert , em vez do destino desejado vi-command .

Como faço para mudar de emacs para vi-command keymaps por meio de uma ligação?

    
por Tom Hale 16.08.2016 / 07:21

1 resposta

2

As seguintes .inputrc lines permitem Meta / Alt + E alternar entre os modos emacs e vi-insert .

Fazer o mooshing j e k simultaneamente irá levá-lo ao modo vi-command .

set show-mode-in-prompt on

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

Nota: A única palavra em inglês com "kj" é "blackjack", sem palavras que contenham "jk")

Observação: em bash v4.3.11 (1), se você adicionar uma ligação em keymap emacs a vi-movement-mode para tentar mudar diretamente para o mapa de teclado vi-command , o prompt não será atualizado se você tiver show-mode-in-prompt on , portanto, essa solução alternativa é necessária.

    
por 16.08.2016 / 08:00

Tags