weiß, dass ich die Regex dafür ein globales, ersetzenInteraktive Suche/ersetzen Regex in Vim?
%s/old/new/g
Wie gehen Sie in Vim eine interaktive Such ersetzen tun?
weiß, dass ich die Regex dafür ein globales, ersetzenInteraktive Suche/ersetzen Regex in Vim?
%s/old/new/g
Wie gehen Sie in Vim eine interaktive Such ersetzen tun?
Fügen Sie die Flagge c (in der vim Eingabeaufforderung):
:%s/old/new/gc
Sie geben eine Ja/Nein-Aufforderung bei jedem Auftreten von 'alten'.
der Vim integrierte Hilfe bietet nützliche Informationen zu den verfügbaren Optionen einmal Substitution mit Bestätigung ausgewählt wurde. Verwenden Sie:
:h :s
Dann blättern Sie zu Abschnitt auf Optionen bestätigen. Screenshot unten:
Zum Beispiel diese ersetzen und die restlichen Spiele verwenden a
.
ich in der Regel den Fund/Ersatz/neben/Repeat-Befehl verwenden :-)
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
Die find "old"
ist, substitute 3 characters for "new"
, find next
, repeat substitute
, und so weiter.
Es ist ein Schmerz für massive Substitutionen, aber es können Sie selektiv einige Vorkommen von alten ignorieren (durch nur n
erneutes Drücken der nächste statt .
zu finden, um eine Substitution zu wiederholen).
Ich benutze dies auch, auch für ähnliche Texte. (3cW
Es ist kein Antipattern! Es ist süß. Und Sie können mit N in die entgegengesetzte Richtung suchen. Wirklich gut, wenn Sie ein Wort sehen und es ändern wollen. * cwNewText
Was ist '
Ich denke, Sie suchen nach c
, zB s/abc/123/gc
, dies wird dazu führen, VIM die Ersetzungen zu bestätigen. Siehe: Hilfe: ersetzen Sie weitere Informationen.
Wenn Sie nur die Anzahl der Vorkommen von 'abc' zählen möchten, können Sie %s/abc//gn
tun. Dies ersetzt nichts, sondern gibt nur die Anzahl der Vorkommen von 'abc' an.
Mark Biek wies darauf hin, mit:
%s/old/new/gc
für eine globale Suche mit der Bestätigung für jede Substitution ersetzen. Aber ich genieße es auch interaktiv zu überprüfen, ob der alte Text korrekt übereinstimmt. Ich macht zuerst eine Suche mit einem regulären Ausdruck, dann wieder verwende ich dieses Muster:
/old.pattern.to.match
%s//replacement/gc
Die s//
wird das letzte Suchmuster verwenden.
Wenn Ihr Ersatztext zu Änderung muss für jedes abgestimmte Auftreten (das heißt nicht nur die Auswahl Ja/Nein einen singulären Ersatz anwenden) können Sie eine Vim-Plugin verwenden ich interactive-replace genannt gemacht.
+1, ich habe heute etwas Neues gelernt! Vim hat so viele versteckte Geheimnisse. :) –
In der Tat! Ich wusste nichts über den Modifikator c. – strager
Vim Befehle zu lernen ist ein bisschen wie Nethack zu spielen. Sie wissen nie, was sich ein einzelner Charakter wundert. –