Wenn ich /regex
tippe, springt der Cursor vorübergehend zur ersten Übereinstimmung und alle Übereinstimmungen werden hervorgehoben. Dies wird während der Eingabe aktualisiert. Ist es möglich, dieses Verhalten zu bekommen, wenn ich mich auf eine Substitution vorbereite? Wenn ich zum Beispiel an einem komplizierten regulären Ausdruck arbeite :%s/\<regex\>/
, möchte ich wissen, was passt, bevor ich den Abzug drücke und alles ändere. Wie geht das?
vim
regular-expression
John Berryman
quelle
quelle
Antworten:
Geben Sie Ihre Suche zunächst mit / (oder ? ) Ein, damit Sie Ihren regulären Ausdruck optimieren können (da Sie incsearch verwenden).
Sobald Sie alles schön verstanden haben, können Sie das vorherige Suchmuster (das gerade verwendete) im Ersatzbefehl verwenden, indem Sie zwei Trennzeichen für das Suchelement verwenden:
Natürlich können Sie wie gewohnt Auswahlen und Bereiche verwenden.
quelle
s//
Eine Möglichkeit besteht darin, dass Sie ein Bestätigungsflag haben können
c
.:h s_flags
::Sie können auch den
grep
Befehl versuchen , um die gefilterte Ausgabe und die hervorgehobene Originaldatei anzuzeigen.:g/re/p
oder:g/re/
quelle
Der kurze Weg, um zu sehen, wie Ihr regulärer Ausdruck übereinstimmt, besteht darin, eine Suche mit
/
dem gewünschten regulären Ausdruck durchzuführen . Es springt zum ersten Spiel und markiert es, während Sie es eingeben. Probieren Sie es aus -vim
wird Sie nicht enttäuschen.quelle