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?
vim
text-editors
text-editing
Labyrinth
quelle
quelle
Antworten:
Sie können den zuletzt ausgewählten visuellen Bereich mit erneut auswählen
gv
.quelle
:help
".:help select-visual
sollte Sie zum richtigen Handbuch in vim @skywinder führen.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
Diese Auswahl kann ich dann durch Eingabe zurückholen
@a
(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.quelle
gv
funktioniert hervorragend, um die letzte Auswahl wiederherzustellen. 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 speichern und markieren
m
. Verwenden Sie nach der Installation und mit den Standardoptionen:im visuellen Modus, um Ihre aktuelle Auswahl zu markieren
a
, dannim normalen Modus, um zu dieser Auswahl zurückzukehren.
quelle
mkview
aber .. Ich denke ja, da die Marken in einer separaten Datei gespeichert sind und .. Ich schlage vor, Sie versuchen es trotzdem :) Wenn sie nicht so bleiben, wie Sie es wünschen, freuen wir uns über Ihr Feature fordere auf GitHub an und versuche es zu verarbeiten.Angenommen, ich wollte Goodbye durch Hello ersetzen und der folgende Code wurde ausgewählt:
Ich würde
:s/Goodbye/Hello/
eintippen und vim wird alle Instanzen vonGoodbye
mit ersetzenHello
Es ist einfach eine Kombination aus regulären Ausdrücken und visuellen Modi. Wenn Sie auswählen, sollte es automatisch ausgefüllt werden
'<,'>
quelle
gv
und Ihr visueller Modus kehrt zum vorherigen Auswahlstatus zurück.