Já posso mapear uma combinação de teclas no modo de inserção:
:inoremap abc <do stuff>
No entanto, isso tem algumas desvantagens:
Ao digitar uma versão parcial da sequência, como, por exemplo
ab
, os caracteres não são exibidos por um curto período de tempo, pois está "aguardando" para ver se você digitará o comando completo. Isso é indesejável; Quero mapear uma cadeia de letras sem pausar se uma substring parcial da cadeia for inserida.Se eu digitar
ab
, faça uma pausa (e aguarde até que os caracteres realmente apareçam conforme mencionado no ponto acima) e digitec
o comando não é executado. Quero que o comando seja executado, não importa quanto tempo espere.
Eu usaria um iab
, mas isso não funciona porque:
- Requer a inserção de um espaço após a sequência
- Não consigo executar comandos arbitrários com ele, apenas insiro uma sequência de texto.
Existe alguma maneira de executar um comando ou pressionamento de tecla se uma certa string for inserida no modo de inserção, sem usar um mapa (que será pausado irritantemente toda vez que eu digitar um a
e não funcionará se eu esperar muito)?
fonte
:cnoremap abc <do stuff>
...ab<any key>
.Respostas:
Aqui está uma maneira de fazer isso:
fonte