Acabei de descobrir as maravilhas de set -o vi
, e estou curioso para saber se é possível personalizar esse modo do shell do vi das mesmas maneiras que você pode personalizar o vi ou o vim?
Por exemplo, crie uma ligação de chave personalizada para mapear uma chave ou combinação de teclas mais conveniente para esc
?
Se não houver suporte no momento, qual seria a dificuldade de alterar o código-fonte do programa e o código-rígido em algumas personalizações, ou seria uma má idéia?
Respostas:
Sim, você pode alterar os mapeamentos de teclas (para o modo vi- ou emacs-like) com o
bind
built-in. Na verdade, esse é um recurso de linha de leitura (para que você possa ter ligações semelhantes a vi em todos os programas de linha de leitura, não apenas no bash).A chave que você está procurando é chamada
vi-movement-mode
e o padrão é\e
(escape). Além disso, você pode vinculá-lo a (e isso é bastante bobo) igual a este. A segunda linha se livra da ligação para escapar:A execução
bind -p
mostrará todas as chaves que você pode ligar e as ligações atuais (se houver).Você pode colocar
bind
comandos no seu.bashrc
ou editar~/.inputrc
para aplicá-lo a todos os programas readline executados. Os documentos do readline contêm detalhes completos.fonte
bind "Control-Space":vi-movement-mode
- isso funciona bem. Mas, por exemplo, no vim, digitei dois caracteres seguidos como gatilho paraesc
, ou seja, se você digitar,jj
retornará ao modo normal. Isso não funcionou quando eu tentei com o bind, existe uma maneira especial de fazê-lo funcionar?@
), ou ele não receberá uma notificação.bind '"jk":vi-movement-mode'