Frage Wie verwenden Sie eine visuelle Modusauswahl?


Oft wähle ich beim Bearbeiten von Code einen Block im visuellen Modus und suche und ersetze ihn über den Block. Nachdem ich die Änderungen vorgenommen habe, wird der visuelle Modus jedoch verlassen. Wie machst du einen neuen Fund und ersetzt die selbe Auswahl?


147
2017-12-10 16:58


Ursprung


Nun, ich habe einen Weg gefunden, aber es ist ein wenig umständlich:: <<> </> s / alt / neu / g Jeder Weg, dies zu tun, ohne das '<,>> eingeben zu müssen? - labyrinth


Antworten:


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


212
2017-12-10 23:59



Genial! @Heptite Wie finde ich diesen Befehl selbst mit Stackoverflow? - skywinder
@skywinder: Hilfe gv - Heptite
@Heptite: Ich bin mir nicht sicher, ob du hier ironisch bist, aber dieser Befehl zeigt dir was: gv tut es, wenn du erst einmal davon weißt. Aber was ist, wenn ich? nicht? Bring einem (Frauen) Mann zum Fischen und all dem bei. - Ben Thul
@BenThul: Ich denke ich habe die Frage missverstanden. Ich kenne viele Features von Vim, einfach indem ich den Großteil der Dokumentation im Laufe der Zeit durchlese, beginnend mit ":help". - Heptite
:help select-visual sollte Sie zum richtigen Handbuch in vim @skywinder führen. - nwildner


gv ist definitiv die schnellste Methode (letzte Auswahl verwenden), aber wenn Sie eine stabile gespeicherte Auswahlregion (oder mehrere) möchten, können Sie immer Makros erstellen.

Nehmen wir an, ich möchte eine Auswahl meiner aktuellen Methode speichern, die von den Zeilen 25-35 ausgeht. 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 dann diese Auswahl zurückholen, indem ich tippe @a (Makro in Register a ausführen). Wiederholen Sie dies mit allen gewünschten Registern, Linien oder Linienabschnitten. Wenn Sie Änderungen an der Datei vornehmen, ändert sich natürlich auch die Auswahl, daher sollten Sie die Verwendung von Markierungen anstelle von "Hardcoding" -Zeilennummern in Erwägung ziehen.


11
2018-03-14 13:26



zmto eingeben, dass Sie die Zeilennummern wissen müssen. Ich denke, es ist besser, zwei Marken zu definieren und dann zu verwenden: 'a', b, um auf dem Bereich zwischen ihnen zu arbeiten (oder 'ersetzen' mit Backticks, wenn Granularität innerhalb einer Linie gewünscht wird) - sillyMunky
Ja, das Zeilennummern-Ding war dumm - ich habe es nur als Beispiel für die Erstellung eines Auswahlmakros verwendet. Die Verwendung einer Reihe von Marken ist jedoch eine interessante Idee ... - 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 a an dieses Plugin Wir arbeiten gerade an dem GitHub.

VisualMarks Mit dieser Option können Sie ausgewählte Bereiche genau so speichern und wiederherstellen, wie Sie sie gespeichert haben, und bestimmte Orte in Ihren Dateien mit markieren m. Verwenden Sie nach der Installation und mit den Standardoptionen:

ma

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

<a

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


6
2017-10-18 17:39



Wow, das klingt wirklich cool. Ich werde dieses Plugin ausprobieren müssen! Übrigens, können diese VisualMarks bei mkview bestehen, wie Sie es mit Markierungen können? - labyrinth
@labyrinth Ich weiß es nicht mkview aber ich denke Ja da Marken in einer separaten Datei gespeichert sind und ich schlage vor, du versuchst es trotzdem :) Wenn sie nicht so bleiben, wie du es wünschst, freuen wir uns über deine Feature-Anfrage auf GitHub und versuche es zu verarbeiten. - iago-lito


Angenommen, ich möchte 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 tippen :s/Goodbye/Hello/ und vim ersetzt alle Instanzen von Goodbye mit Hello

Es ist einfach eine Kombination aus regulären Ausdrücken und visuellen Modusauswahlen von vim. Wenn Sie auswählen, sollte es automatisch ausgefüllt werden '<,'>


0
2017-12-10 17:20



Tut mir leid, das habe ich nicht gefragt. Was ich frage ist, wie benutzt du die Auswahl wieder, um einen anderen Fund zu machen und denselben Bereich zu ersetzen, wie zuvor ausgewählt? - labyrinth
Nach dem Ersetzen werden Sie den visuellen Modus verlassen. eintippen gv und Ihr visueller Modus kehrt zum vorherigen Auswahlstatus zurück. - Scott Nguyen