VIM: Wie bekommen Sie den letzten Ex-Befehl, den Sie verwendet haben?

10

Ich finde, dass ich manchmal einen wirklich langen Ex-Modus-Befehl schreibe, der viele Dinge erledigt. Es sind eine Art "Mini-Skripte", die ich im Texteditor schreibe, dann starte ich den Ex-Modus und kopiere sie in die Ex-Zeile und führe sie aus. Aber dann bearbeite ich immer im Ex-Modus und finde es schwierig, die Änderungen, die ich im Ex-Modus vorgenommen habe, wieder in meine Textbearbeitungssitzung zu bringen.

Wie kopieren Sie über die Tastatur den zuletzt verwendeten ex-Befehl und fügen ihn in Ihren Texteditor ein?

(Hinweis: Dies ist das Gegenteil der Frage " Wie kopiere / füge ich im vim ex-Modus ein?", Wo der Benutzer fragt "wie kopiere ich aus dem Texteditor und füge sie in den ex-Modus ein?". Meine Frage ist die Gegenteil, weil ich aus dem Ex-Modus kopieren und in meinen Texteditor einfügen möchte.)

Trevor Boyd Smith
quelle
Ich habe einen Kludge, der dies tut ... aber es erfordert die Maus, um auszuwählen ... das gvim-Pulldown-Menü zum Kopieren ... und wenn die Ex-Zeile zwei Zeilen enthält, hat die Einfügung eine neue Zeile, was ärgerlich ist. (aber ärgerlicher ist die Tatsache, dass ich die Maus und die GUI zum Kopieren / Einfügen benutze ...).
Trevor Boyd Smith

Antworten:

16

Das :Register enthält den letzten Befehl: -command (ex-Befehl), den Sie ausgeführt haben. Sie können also einfach den Befehl ":p(mit doppeltem Anführungszeichen) eingeben, um dieses Register in den aktuellen Puffer einzufügen. Sehen:

:help registers
:help ":

Beachten Sie, dass es Register für die letzte Suche, den Namen des aktuellen Puffers usw. gibt.

Heptit
quelle
17

Versuchen Sie den q:Befehl. (Das ist zwei Zeichen, zuerst qund dann :.) Dies ist ein normaler Modus Befehl, Ihre Ex-Befehl Geschichte in einem speziellen Vim - Puffer wird geöffnet. Sie können den Verlauf überprüfen, wie immer an allem ziehen, was Sie möchten, und / oder eine Zeile bearbeiten und darauf drücken <enter>, um sie auszuführen.

Herbert Sitz
quelle
Pass nur auf :q, dass du nicht tippst, was mein Muskelgedächtnis mir aufzuzwingen versucht!
Frabjous
7
q:funktioniert im normalen Modus. Wenn Sie sich bereits im Befehlszeilenmodus (ex) befinden, geben Sie Strg-F ein, um das Befehlszeilenfenster zu öffnen.
Garyjohn
Hmm .... Strg + F macht nichts anderes als "^ F" in meiner Ex-Modus-Befehlszeile zu drucken. Vermisse ich etwas magische Sauce?
Stabledog