it-swarm.com.de

Gibt es in Vim eine Möglichkeit, Text in die Suchzeile einzufügen?

Ich möchte nach $maximumTotalAllowedAfterFinish suchen und durch $minimumTotalAllowedAfterFinish ersetzen. Statt den Langtext einzugeben:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

Gibt es eine Möglichkeit, diese langen Variablennamen in die Suchzeile zu kopieren, da ich in der Befehlszeile nicht "p" zum Einfügen eingeben kann?

92
Edward Tanguay

Sie können den Inhalt eines nummerierten oder benannten Registers einfügen, indem Sie Folgendes eingeben CTRLR{0-9a-z"%#:-=.}. Durch Eingabe von CTRL-RCTRL-W Sie können das aktuelle Wort unter dem Cursor einfügen. Sehen:

:he cmdline-editing

für mehr Informationen.

121
WMR

Kopieren Sie es wie gewohnt CtrlR" einfügen. Es gibt viele andere CtrlR Verknüpfungen (z. B. ein Taschenrechner, aktueller Dateiname, Inhalt der Zwischenablage). Geben Sie :help c_<C-R> ein, um die vollständige Liste anzuzeigen.

49
Ned

Geben Sie q: ein, um in einem neuen Puffer in den Verlaufsbearbeitungsmodus zu gelangen. Bearbeiten Sie dann die letzte Zeile des Puffers und drücken Sie Enter, um ihn auszuführen.

14
Johannes Hoff

Kopieren:
1) v (oder mit der Maus im visuellen Modus hervorheben) 
2) y (rucken)

Einfügen:
1) / (Suchmodus)
2) Ctrl + R + 0 (Einfügen aus dem abgerufenen Register)

10
Jason

Oder erstellen Sie den Befehl in einem virtuellen Puffer, z. tippe es in den Puffer:

s/foo/bar/gci

Und kopiere es mit "ayy in ein benanntes Register (falls sich der Cursor in dieser Zeile befindet!).

Jetzt können Sie den Inhalt des Registers "a" in der Ex-Befehlszeile von Vim mit folgendem Befehl ausführen:

:[OPTIONAL_RANGE]@a

Ich benutze es die ganze Zeit.

3
Zsolt Botykai

Normalerweise machen Sie das mit der Maus (vielleicht CtrlIns oder CtrlC Klicken Sie in der Befehls-/Suchzeile mit der mittleren Maustaste (oder) ShiftIns oder CtrlV).

Eine andere Möglichkeit besteht darin, Ihre Befehls-/Suchzeile in den Textpuffer zu schreiben, wobei die gesamte in den Textpuffern verfügbare Bearbeitung mit : und all beginnt, und dann in der Zeile Folgendes auszuführen:

"[email protected]

dadurch wird die gesamte Befehlszeile im Puffer a gespeichert und dann ausgeführt. Es wird jedoch nicht im Befehlsverlauf gespeichert.

Versuchen Sie, die folgende Zeile im Textpuffer als Beispiel für die obigen Tastendrücke zu erstellen:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

Schließlich können Sie q: eingeben, um die Bearbeitung des Verlaufs in einem Textpuffer zu starten.

2
tzot

Sie können den Cursor auf das Wort setzen, das Sie zu Ihrem Muster hinzufügen möchten, und dann drücken / oder : Um entweder den Such- oder den Befehlsmodus aufzurufen, drücken Sie CtrlRCtrlW um das Wort zu kopieren. Quelle

0