Atalhos de teclas personalizados para o modo shell vi, ou seja, "set -o vi"?

Atalhos de teclas personalizados para o modo shell vi, ou seja, "set -o vi"?

Acabei de descobrir as maravilhas do set -o vi, e estou curioso para saber se é possível personalizar esse modo vi shell da mesma maneira que você personaliza o vi ou o vim.

Por exemplo, crie uma ligação de teclas personalizada para mapear uma tecla ou combinação de teclas mais conveniente para esc?

Se não for suportado atualmente, quão difícil seria alterar o código-fonte do programa e o código rígido em algumas personalizações, ou isso seria uma má ideia?

Responder1

Sim, você pode alterar os mapeamentos de teclas (para o modo vi ou emacs) com o bindarquivo embutido. Na verdade, este é um recurso readline (para que você possa ter ligações semelhantes ao vi em todos os programas readline, não apenas no bash).

A chave que você está procurando é chamada vi-movement-modee o padrão é \e(escape). Você também pode vinculá-lo a (e isso é um tanto bobo) iguais como este. A segunda linha elimina a ligação para escapar:

$ bind "=":vi-movement-mode 
$ bind -r "\e"

A execução bind -pmostrará todas as chaves que você pode vincular e suas ligações atuais (se houver).

Você pode colocar bindcomandos em seu arquivo .bashrc, ou pode editá- ~/.inputrclo para aplicá-lo a todos os programas readline que você executa. Os documentos readline contêm detalhes completos.

informação relacionada