Was ist der beste Weg, um einen Variablennamen in vim neu zu faktorisieren?


8

Ich weiß, dass es eine Möglichkeit gibt, variable Vorkommen in einer Quelldatei zu suchen und zu ersetzen.

Aber gibt es einen besseren Weg, wie eine Variable, wenn ich sie an einer Stelle umbenenne, auch an anderen Stellen umbenannt wird, ohne zu suchen und zu ersetzen oder zu ersetzen?


Die Antwort hängt von der Sprache ab. In einigen Codebasen kann es sinnvoll sein, einen regulären Ausdruck zu schreiben, der genau zu Ihrer Situation passt.
Aebabis

Antworten:


13

Sie können einfach den üblichen Workflow verwenden searchund replace:

/original
cwreplaced
n.n.

Sie können auch die gnBewegung nutzen:

/original<CR>
cgnreplaced<ESC>
.....

cgnwird cdie hange next abgestimmt Muster, so dass anstelle der Verwendung n.n.zu go to nextund repeatman kann nur ..die Mittel replace next.

gnbedeutet "Suche nach dem nächsten Vorkommen und starte eine visuelle Auswahl darüber". Weitere Informationen finden Sie im Dokument : :h gn.


Können Sie bitte etwas über gn motion erklären? Ich bin ziemlich neu in Vim.
WitVault

3
Fragen Sie Vim immer zuerst : :help gn.
Romainl

@ nobe4: Du kannst deine Antwort verbessern. :) Der Benutzer möchte möglicherweise durch $ first durch $ second ersetzen, nicht durch $ first_variable. Können wir mit \ <pattern \> gehen? Oder schlagen Sie einen besseren Weg vor!
SibiCoder

6

Sie können einen Ersatz verwenden:

:%s/original/replaced/g

Wird sdurch die gesamte Datei ( %) originalvon ersetzt replaced. Und ersetzt mehrere Vorkommen in derselben Zeile g.

Wenn Sie nicht sicher sind, ob Sie automatisch ersetzen möchten, können Sie das cFlag hinzufügen , um jedes Mal eine Bestätigung anzufordern.


Ich möchte nicht blind suchen und ersetzen.
WitVault

3
Dann ist die cFlagge der richtige Weg.
nobe4

2

Ich möchte eine weitere Option hinzufügen.

Sie können tun /originalund dann tun :%s//replacement. (Verwenden Sie /cam Ende, wenn Sie eine Bestätigung wünschen).

Obwohl Sie 3 weitere Tasten drücken, hat dies einen Vorteil gegenüber der Ausführung, nur %s/original/replacementweil es einen visuellen Hinweis darauf liefert, dass Ihre Suche korrekt ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.