Ich kenne den regulären Ausdruck für einen globalen Ersatz.
%s/old/new/g
Wie gehen Sie vor, um eine interaktive Suche in Vim zu ersetzen ?
Fügen Sie das Flag c hinzu (in der vim-Eingabeaufforderung):
:%s/old/new/gc
gibt Ihnen bei jedem Auftreten von 'alt' eine Ja / Nein-Eingabeaufforderung.
Die integrierte Hilfe von Vim bietet nützliche Informationen zu den verfügbaren Optionen, sobald die Ersetzung durch Bestätigung ausgewählt wurde. Verwenden:
:h :s
Scrollen Sie dann zum Abschnitt über Bestätigungsoptionen. Screenshot unten:
Verwenden Sie beispielsweise, um diese und alle verbleibenden Übereinstimmungen zu ersetzen a
.
Mark Biek wies darauf hin, indem er:
für eine globale Suche durch Bestätigung für jede Ersetzung ersetzen. Es macht mir aber auch Spaß, interaktiv zu überprüfen, ob der alte Text korrekt übereinstimmt. Ich mache zuerst eine Suche mit einem regulären Ausdruck, dann verwende ich dieses Muster wieder:
Der
s//
verwendet das letzte Suchmuster.quelle
Ich denke, Sie suchen
c
, z. B.s/abc/123/gc
wird dies dazu führen, dass VIM die Ersetzungen bestätigt. Siehe: Hilfe: Ersatz für weitere Informationen.quelle
Normalerweise benutze ich den Befehl find / replace / next / repeat :-)
Das ist
find "old"
,substitute 3 characters for "new"
,find next
,repeat substitute
, und so weiter.Es ist ein Schmerz für massive Substitutionen, aber Sie können einige alte Vorkommnisse selektiv ignorieren (indem Sie einfach
n
erneut drücken , um die nächste zu finden, anstatt.
eine Substitution zu wiederholen).quelle
<CR>
?Wenn Sie nur die Anzahl der Vorkommen von 'abc' zählen möchten, können Sie dies tun
%s/abc//gn
. Dies ersetzt nichts, sondern gibt nur die Anzahl der Vorkommen von 'abc' an.quelle
Wenn sich Ihr Ersatztext für jedes übereinstimmende Vorkommen ändern muss (dh nicht einfach Ja / Nein wählen, um einen einzelnen Ersatz anzuwenden), können Sie ein von mir erstelltes Vim-Plugin namens Interactive-Replace verwenden .
quelle
Neovim hat jetzt eine Funktion zur Vorschau der Substitution:
Bild aus: https://medium.com/@eric.burel/stop-using-open-source-5cb19baca44d Dokumentation der Funktion: https://neovim.io/doc/user/options.html# 'inccommand'
quelle
nvim
eingebaute Funktion, gut zu wissen! Danke für das Teilen!