Wenn Sie *in Vim drücken , sucht der Editor in derselben Datei nach dem nächsten Vorkommen des Begriffs. Sie müssen den Begriff nicht mehr eingeben.
Gibt es eine schnelle Möglichkeit, den Begriff unter dem Cursor durch einen neuen zu ersetzen? Ein Zeichen, das den Befehl ausgibt und dann den neuen Begriff eingibt Enter.
n
funktioniert nur bei mirb
geht auf Standard zurück (Wortanfang)#
funktioniert bei mir wie erwartet, was auf den vorherigen Begriff zurückgeht.n
für das nächste undN
für das vorherige. Es ist auf meiner Tastatur geschrieben, daher weiß ich nicht, wie ich es falsch verstanden habe.Antworten:
Sie können verwenden:
Dabei
<c-r><c-w>
bedeutet, buchstäblich CTRL- rCTRL- weinzugeben, um das Wort unter den Cursor einzufügen.quelle
Einfach benutzen *und dann:
Wenn Sie kein Muster angeben, verwendet der Ersatzbefehl das zuletzt gesuchte. Abhängig vom Wert
gdefault
in Ihrer Konfiguration müssen Sie/g
diesem Befehl möglicherweise einen Modifikator hinzufügen .quelle
new value
ein&
oder ein enthält/
, entkommen Sie es einfach mit `\`.:se gd
oder:set gdefault
weist vim an, jedes Muster so zu behandeln, als hätte es am Ende einen / g-Modifikator (genauer gesagt, es kehrt die Bedeutung des / g-Flags um. Wenn Sie es also mitgdefault
aktiv verwenden, wird der Effekt deaktiviert)function_with_a_long_name
und ich alle seine Instanzen durch ersetzen mussself.function_with_a_long_name
?Zusätzlich zu den anderen Antworten können Sie weitere Tastenanschläge vermeiden, indem Sie Ihrer .vimrc-Datei das folgende Snippet hinzufügen, um eine globale Suche und Ersetzung durchzuführen.
quelle
Ich habe ein Plugin erstellt, mit dem Sie einfach Folgendes eingeben können:
https://github.com/chiedojohn/vim-dr-replace
quelle
Eine andere Option ist
gn
:Wenn Sie also
FOO
den letzten Suchausdruck haben, können Sie die nächste Übereinstimmung durchBAR
Eingabe ersetzencgnBAR<Esc>
und für die folgenden Übereinstimmungen mit wiederholen.
.Wenn Sie das Wort unter dem Cursor als Suchausdruck festlegen möchten, können Sie
*N
(oder*#
) eingeben, um nach der nächsten Übereinstimmung zu suchen und zurückzukehren.Wenn sich Ihr Cursor beispielsweise unter dem ersten
FOO
in dieser Zeile befindet:und wenn Sie tippen
*NcgnBAR<Esc>...
, erhalten Sie Folgendes:quelle
Es ist eine Funktion, die ich mir auch gewünscht habe! Aber nicht nur für das Wort unter dem Cursor, sondern auch für eine visuelle Auswahl oder eine Bewegung.
Als Ergebnis (und aufbauend auf Ihren Antworten) habe ich dies zu meiner .vimrc hinzugefügt:
Ich kann jetzt drücken Dinge wie
\sw
,\sf;
oder\si(
im normalen Modus oder\s
im visuellen Modus und prompt gefragt werden , ob das, was ich mit meiner Auswahl ersetzen will.(Bisher weiß ich nicht, ob ich die gleiche Eingabeaufforderung wie @Lieven möchte ...)
quelle