Ich verwende oft den /
Befehl vim search, um meine regulären Ausdrücke zu überprüfen (nur um zu sehen, was damit übereinstimmt). Danach verwende ich normalerweise den :%s
Befehl replace, wobei ich diesen regulären Ausdruck aus der Suche als zu ersetzenden String verwende, z. B. suche ich zuerst nach einem solchen String:
/TP-\(\d\{5\}\)-DD-\d\{3\}
Es passt genau zu dem, was ich will, also ersetze ich:
:%s/TP-\(\d\{5\}\)-DD-\d\{3\}/\1/g
Aber ich muss hier nochmal ganz regexp schreiben. Normalerweise ist diese reguläre Ausdrücke viel länger, deshalb suche ich nach einer Lösung:
Gibt es eine Verknüpfung oder ein VIM-Skript zum direkten Einfügen dieses Suchmusters in den Befehl replace?
Ich benutze vim im Terminal (kein gvim).
quelle
/
den Inhalt des einzufügen Suchmuster Register (/
) direkt in eine teilweise eingegebene Kommandozeile (zB direkt nach:%s/
).\9
, gibt es keine Mehrdeutigkeit.Eine andere gute Möglichkeit, frühere Regex-Suchen sowie Ex-Befehle anzuzeigen und Änderungen daran vorzunehmen, besteht darin, diese Befehle im normalen Modus zu bearbeiten. Von diesem Modus aus haben Sie alle Ihre Fähigkeiten, einschließlich Kopieren und Einfügen.
?
oder/
zum Suchenq/
oderq?
:
versuchenq:
Um mehr zu lesen, siehe
:help q:
.quelle