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 aAktivieren Sie den Einfügemodus<C-x><C-k> - perform dictionary completion on the character before cursor - in this case the lettera`<C-p>Wählen Sie das letzte Element in der Abschlussliste aus, das angezeigt wird. Auf meinem System ist es das Wortarezzo. (Hinweis: Ich habelongestin 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ügemodusjGehen Sie zur nächsten Zeile und bereit, den gleichen Vorgang in der nächsten Zeile auszuführenqhö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 jausgefü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,previewdie longestOption, die <C-p>zum sofortigen Einfügen führt. Wenn ich longestaus der completeoptZeichenfolge 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>jals 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