Antworten:
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:
%s/old/new/gc
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:
/old.pattern.to.match
%s//replacement/gc
Der s//
verwendet das letzte Suchmuster.
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.
Normalerweise benutze ich den Befehl find / replace / next / repeat :-)
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
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).
<CR>
?
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 .
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'
nvim
eingebaute Funktion, gut zu wissen! Danke für das Teilen!