Posso già mappare una combinazione di tasti in modalità inserimento:
:inoremap abc <do stuff>
Tuttavia, ciò presenta alcuni inconvenienti:
Quando si digita una versione parziale della sequenza, ad esempio
ab
, i caratteri non vengono effettivamente visualizzati per un breve periodo di tempo, poiché è "in attesa" per vedere se si sta per digitare il comando completo. Questo è indesiderabile; Voglio mappare una catena di lettere senza mettere in pausa se viene inserita una sottostringa parziale della catena.Se scrivo
ab
, quindi metto in pausa (e aspetto che i caratteri appaiano effettivamente come indicato nel punto precedente), quindi digito ilc
, il comando non viene eseguito. Voglio che il comando venga eseguito, indipendentemente da quanto tempo aspetto.
Vorrei usare un iab
, ma non funziona perché:
- Richiede l'immissione di uno spazio dopo la stringa
- Non posso eseguire comandi arbitrari con esso, inserire solo una stringa di testo.
Esiste un modo per eseguire un comando o sequenze di tasti se viene immessa una determinata stringa in modalità di inserimento, senza utilizzare una mappa (che si fermerà in modo fastidioso ogni volta che scrivo un a
e non funziona se aspetto troppo a lungo)?
ab<any key>
.
:cnoremap abc <do stuff>
...