it-swarm.com.de

Wie können Sie eine Auswahl des visuellen Modus wiederverwenden?

Wenn ich Code bearbeite, wähle ich häufig einen Block im visuellen Modus aus und führe eine Suche und ein Ersetzen über dem Block durch. Nachdem ich die Änderungen vorgenommen habe, wird der visuelle Modus verlassen. Wie führe ich ein neues Suchen und Ersetzen derselben Auswahl durch?

157
labyrinth

Sie können den zuletzt ausgewählten visuellen Bereich mit gv erneut auswählen.

231
Heptite

gv ist definitiv die schnellste Methode (letzte Auswahl verwenden), aber wenn Sie einen stabil gespeicherten Auswahlbereich (oder mehrere) möchten, können Sie immer Makros erstellen.

Nehmen wir an, ich möchte eine Auswahl meiner aktuellen Methode aus den Zeilen 25-35 speichern. Ich kann ein Makro erstellen, das die gesamte Methode durch Eingabe auswählt

q    //start recording
a    //use register a
25G  //Go to line 25
V    //visual-line mode
35G  //Go to line 35
q    // stop recording

Ich kann diese Auswahl dann durch Eingabe von @a zurückholen (Makro in Register a ausführen). Wiederholen Sie diesen Vorgang mit beliebigen Registern, Zeilen oder Zeilenabschnitten. Wenn Sie Änderungen an der Datei vornehmen, kann sich natürlich auch die Auswahl ändern. Daher sollten Sie in Betracht ziehen, Markierungen anstelle von "hartcodierten" Zeilennummern zu verwenden.

14
AlexMA

gv eignet sich hervorragend zum Wiederherstellen der letzten Auswahl. Aber manchmal braucht man ein bisschen mehr.

Wenn Sie jemals mehr persistente Aufzeichnungen benötigen, schauen Sie sich dieses Plugin an , an dem wir gerade am GitHub arbeiten .

Mit VisualMarks können Sie visuell ausgewählte Bereiche genauso speichern und wiederherstellen, wie Sie bestimmte Speicherorte in Ihren Dateien mit m speichern und markieren. Verwenden Sie nach der Installation und mit den Standardoptionen:

ma

im visuellen Modus, um Ihre aktuelle Auswahl zu speichern und dann a zu markieren

<a

im normalen Modus, um zu dieser Auswahl zurückzukehren.

6
iago-lito

Angenommen, ich wollte Goodbye durch Hello ersetzen und der folgende Code wurde ausgewählt:

public static void main(String[] args){
    System.out.println("Goodbye World");
}

Ich würde :s/Goodbye/Hello/ eingeben und vim wird alle Instanzen von Goodbye durch Hello ersetzen

Es ist einfach eine Kombination aus regulären Ausdrücken und visuellen Modi. Wenn Sie auswählen, sollte es automatisch '<,'> ausfüllen

1
Scott Nguyen