J'essaie de définir une macro qui génère rapidement une liste de mots aléatoires.
Je veux que la macro transforme cela en une liste comme
a
b
c
d
e
dans ce
arezzo
bywords
czars
détente
eyrie
Ce que j'ai jusqu'à présent:
- mettre le curseur sur la lettre
a - démarrer l'enregistrement macro
qq aentrer en mode insertion<C-x><C-k> - perform dictionary completion on the character before cursor - in this case the lettera`<C-p>sélectionnez le dernier élément de la liste d'achèvement qui apparaît, sur mon système, c'est le motarezzo. (NB j'ailongestinclus dans mon'completeopt'cadre, ce qui est nécessaire pour<C-p>travailler de cette façon lors de l'achèvement:)'set completeopt=longest,menuone,preview'.<C-y>accepter l'achèvement^[^[quitter le mode d'insertionjpasser à la ligne suivante, prêt à faire la même opération sur la ligne suivanteqarrête d'enregistrer
lorsque je crée la macro et que j'exécute les étapes manuellement, tout fonctionne bien, mais lorsque j'exécute la macro, je vois un message clignotant dans la ligne de commande quelque chose comme:
analyse du fichier du dictionnaire
et rien ne se passe, des commandes de la macro uniquement jsont exécutées, c'est-à-dire que le curseur se déplace le long de la ligne, mais aucune des commandes de fin n'est exécutée.
Est-il possible d'utiliser des compléments de mode d'insertion dans une macro, et si oui, comment faire?
set completeopt=longest,menuone,previewson longestoption qui provoque <C-p>l'insertion immédiate. Si je retire longestde la completeoptchaîne, j'obtiens le même comportement que vous. De plus, oui, les touches fléchées ont fonctionné! merci (j'ai oublié que vous pouvez les utiliser pour naviguer dans la liste d'achèvement)
:set completeopt=et a<c-x><c-k><esc>jcomme macro.
<C-p>étape ... quand je fais ça dans mon vim, ça donne juste le messageback at original- ne sélectionne pas le dernier élément .. J'ai utilisé la touche fléchée vers le haut deux fois pour sélectionner le dernier mot (mon casazures), j'ai appuyé sur enter et alorsEsc+j+q.. cela fonctionne très bien sur l'exécution de la macro