Sto cercando di definire una macro che genera rapidamente un elenco di parole a caso.
Voglio che la macro lo trasformi in un elenco come
a
b
c
d
e
in questo
arezzo
bywords
czars
détente
eyrie
Quello che ho finora:
- posiziona il cursore sulla lettera
a
- inizia a registrare macro
qq
a
entra in modalità inserimento<C-x><C-k> - perform dictionary completion on the character before cursor - in this case the letter
a`<C-p>
seleziona l'ultimo elemento nell'elenco di completamento che appare, sul mio sistema è la parolaarezzo
. (NB Holongest
incluso nella mia'completeopt'
impostazione, che è necessario per<C-p>
funzionare in questo modo durante il completamento:)'set completeopt=longest,menuone,preview'
.<C-y>
accetta il completamento^[^[
uscire dalla modalità di inserimentoj
passa alla riga successiva, pronto per eseguire la stessa operazione sulla riga successivaq
interrompere la registrazione
quando creo la macro e eseguo i passaggi manualmente, tutto funziona bene, tuttavia quando eseguo la macro, vedo un messaggio lampeggiante nella riga di comando qualcosa del tipo:
scansione del file del dizionario
e non accade nulla, solo i comandi nella macro j
vengono eseguiti, ovvero il cursore si sposta lungo la linea, ma nessuno dei comandi di completamento viene eseguito.
È possibile utilizzare i completamenti della modalità di inserimento in una macro e, in tal caso, come posso farlo?
set completeopt=longest,menuone,preview
sua longest
opzione che causa <C-p>
l'inserimento immediato. Se rimuovo longest
dalla completeopt
stringa, ottengo lo stesso comportamento di te. Inoltre, sì, i tasti freccia hanno funzionato! grazie (ho dimenticato che puoi usarli per navigare nell'elenco di completamento)
:set completeopt=
e a<c-x><c-k><esc>j
come macro.
<C-p>
passaggio ... quando lo faccio a mio modo di vedere, mi dà solo il messaggioback at original
- non seleziona l'ultimo elemento .. Ho usato due volte il tasto freccia per selezionare l'ultima parola (il mio casoazures
), ho premuto Invio e alloraEsc+j+q
.. allora funziona abbastanza bene sull'esecuzione di macro