Durch die Suche habe ich die Zeichenfolge hervorgehoben, die ich ändern möchte. Jetzt möchte ich nur den markierten Text ersetzen. Ich verwende n
, um zur nächsten Instanz der Suchzeichenfolge zu gelangen. Ich dachte, ich könnte so etwas tun, ciw
aber das ändert das ganze Wort, nicht nur den hervorgehobenen Text.
Ich bin vertraut mit, :%s/old/new/g
aber ich möchte nicht alle Instanzen ändern. Stattdessen möchte ich meinen Cursor auf jede Instanz bewegen und dann entscheiden, ob ich sie ändern möchte.
gn
, also hier ist eine ähnliche Methode, die ich gerade entdeckt habe:c//e<CR>FooBar<Esc>//<CR>
:%s/oldtext/newstuff/g
ändert alle Übereinstimmungen vonoldtext
bisnewstuff
..
mehrmals zu schlagen , kann ich:%norm .
( Quelle ) verwenden.Wenn Sie bereits mit
/word
oder nach einem Wort gesucht haben?word
.Sie können
:%s//newword/gc
das zuvor gesuchte Wort durch ersetzennewword
, indem Sie den Suchbegriff (s//..
) leer lassen.Das
c
Flag sagt, dass jede Änderung bestätigt werden sollte, indem Siey
auf Ja odern
Nein drücken .Schauen Sie sich
:help :s_flags
für weitere Informationen über die confirm Flagge.quelle
l
könnena
, undq
(oder<Esc>
) für verschiedene Möglichkeiten, den Bestätigungszyklus abzuschließen.Methode 1
Sie können die
gn
undgN
Zuordnungen nutzen, um das zu erreichen, was Sie wollen.gn
sucht vorwärts nach dem zuletzt verwendeten Suchbegriff und wählt die Übereinstimmung visuell aus.gN
macht genau das gleiche, außer dass es rückwärts sucht. In Kombination mit einem Operator wie z. B.c
wird der Operator auf die Übereinstimmung angewendet. Wenn Ihre letzte Suchzeichenfolge beispielsweise "foo" lautet und Sie eingebencgn
, wird vorwärts nach der nächsten Instanz von "foo" gesucht, gelöscht und Versetzen Sie Sie in den Einfügemodus, um den Ersatztext einzugeben.Weitere Informationen hierzu finden Sie unter
:help gn
und:help gN
.Methode 2
Sie können den
:substitute
Befehl mit demc
Flag verwenden. Dadurch werden Sie aufgefordert, jede Ersetzung zu bestätigen. Angenommen, Sie möchten foo in der gesamten Datei durch bar ersetzen, aber jedes Ersetzen bestätigen:Weitere Informationen hierzu finden Sie in folgenden Hilfethemen:
:help :s_flags
,:help cmdline-ranges
, und:help :substitute
.quelle