Ich versuche, ein Makro zu definieren, das schnell eine Liste zufälliger Wörter generiert.
Ich möchte, dass das Makro daraus eine Liste wie macht
a
b
c
d
e
das mögen
arezzo
bywords
czars
détente
eyrie
Was ich bisher habe:
- Setzen Sie den Cursor auf den Buchstaben
a
- Starten Sie die Aufnahme des Makros
qq
a
Aktivieren Sie den Einfügemodus<C-x><C-k> - perform dictionary completion on the character before cursor - in this case the letter
a`<C-p>
Wählen Sie das letzte Element in der Abschlussliste aus, das angezeigt wird. Auf meinem System ist es das Wortarezzo
. (Hinweis: Ich habelongest
in meine'completeopt'
Einstellung aufgenommen, die erforderlich ist, um<C-p>
während der Fertigstellung auf diese Weise zu arbeiten :)'set completeopt=longest,menuone,preview'
.<C-y>
Akzeptiere den Abschluss^[^[
Beenden Sie den Einfügemodusj
Gehen Sie zur nächsten Zeile und bereit, den gleichen Vorgang in der nächsten Zeile auszuführenq
höre auf, aufzunehmen
Wenn ich das Makro erstelle und die Schritte manuell durchführe, funktioniert alles einwandfrei. Wenn ich das Makro jedoch ausführe, blinkt in der Befehlszeile eine Meldung wie:
Scannen der Wörterbuchdatei
und nichts passiert, von den Befehlen im Makro wird nur j
ausgeführt, dh der Cursor bewegt sich die Zeile entlang, aber keiner der Abschlussbefehle wird ausgeführt.
Ist es möglich, Vervollständigungen des Einfügemodus in einem Makro zu verwenden, und wenn ja, wie kann ich das tun?
set completeopt=longest,menuone,preview
die longest
Option, die <C-p>
zum sofortigen Einfügen führt. Wenn ich longest
aus der completeopt
Zeichenfolge entferne , erhalte ich das gleiche Verhalten wie Sie. Auch ja die Pfeiltasten haben funktioniert! danke (ich habe vergessen, dass Sie sie verwenden können, um in der Abschlussliste zu navigieren)
:set completeopt=
und a<c-x><c-k><esc>j
als Ihr Makro.
<C-p>
Schritt nicht ... wenn ich das in meinem vim mache, gibt es nur die Meldungback at original
- wählt nicht das letzte Element aus. Ich habe zweimal die Pfeiltaste verwendet, um das letzte Wort (meinen Fallazures
) auszuwählen , drückte die Eingabetaste und dannEsc+j+q
.. es funktioniert dann ganz gut bei der Ausführung von Makro