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 bind
arquivo 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-mode
e 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 -p
mostrará todas as chaves que você pode vincular e suas ligações atuais (se houver).
Você pode colocar bind
comandos em seu arquivo .bashrc
, ou pode editá- ~/.inputrc
lo para aplicá-lo a todos os programas readline que você executa. Os documentos readline contêm detalhes completos.