C'è un tipo di completamento che non è elencato nei file della guida di vim (in particolare: insert.txt), ma che istintivamente avverto piuttosto spesso. Diciamo che ho le parole "Awesome" e "SuperCrazyAwesome" nel mio file. Trovo un'istanza di Awesome che dovrebbe essere SuperCrazyAwesome, quindi spero all'inizio della parola, inserire la modalità di inserimento e quindi digitare "SuperCrazy".completamento del codice interno in vim
Sento che dovrei essere in grado di digitare "S", creando "SCrazy", e quindi semplicemente premere un tasto di scelta rapida completamento o due per farlo trovare ciò che è a sinistra del cursore ("S"), che cosa è per il right ("Crazy"), regex questo contro tutte le parole nel file ("/ S \ w * Crazy /"), e fornirmi un menu di scelta rapida di opzioni, o semplicemente sostituire se c'è una sola corrispondenza.
Mi piacerebbe utilizzare il sistema di completamento effettivo per questo. Esiste un completamento "definito dall'utente" che utilizza una funzione e ha un buon esempio negli aiuti per la sostituzione da una determinata lista. Tuttavia, non riesco a rintracciare molti particolari che avrei bisogno di fare accadere, tra cui:
- Come ottengo un elenco di tutte le parole nel file da una funzione vim?
- Posso elencare le parole da tutti i buffer (con nomi di file), come completo di vim?
- In che modo, in modalità di inserimento, ottengo il testo nella parola prima/dopo il cursore?
- Il completamento può sostituire l'intera parola e non solo fino al cursore?
Sono stato a questo per un paio d'ore. Continuo a colpire i vicoli ciechi, come this one, che mi ha introdotto a \% # per la corrispondenza con la posizione del cursore, che non sembra funzionare per me. Ad esempio, una ricerca per \ w * \% # restituisce solo il primo carattere della parola in cui mi trovo, indipendentemente da dove mi trovo. \% # Non sembra ancorare.
Non strettamente pertinente, ma è possibile ottenere alcuni suggerimenti da [questo] (http://stackoverflow.com/questions/6548541/camelcase-expansion-in-vim-like-intellij-idea/6550628#6550628) risposta. Esistono funzioni di esempio per generare un elenco di parole dal file corrente e una funzione di completamento personalizzata. Proverò a postare una risposta più tardi oggi. –
Il tuo link sembra interessante e ricco di dati. Lo scaverò attraverso Grazie per l'aiuto. –