Vim Visual Modus
Hier ist der Text ins Deutsche übersetzt und im MediaWiki-Rohformat:
```
Visual Mode in Vim
Warum Visual Mode?
Wenn du einen anderen Texteditor oder eine IDE benutzt hast, kannst du wahrscheinlich einen Textblock hervorheben und Änderungen daran vornehmen. Der visuelle Modus von Vim funktioniert ähnlich: Du kannst einen Textblock auswählen und Änderungen daran vornehmen.
Du kannst Änderungen an einem Textobjekt mit Vims Normalmodus vornehmen, aber es gibt Zeiten, in denen der visuelle Modus besser geeignet ist. Angenommen, du hast folgendes: const one = "ONE"; const TWO = "Two"; Du möchtest den Abschnitt ab dem "N" in "One" kleinschreiben und vor dem "T" in "Two" stoppen. const one = "One"; const two = "Two"; Das lässt sich im Normalmodus nicht leicht bewerkstelligen, da du nur einen Teil der ersten und zweiten Zeile änderst, nicht die gesamten zwei Zeilen. Mit dem visuellen Modus kannst du das "n" bis vor das "T" visuell auswählen und den visuellen Modus Kleinschreiboperator (u) anwenden.
Der visuelle Modus kann nützlich sein, wenn du eine spezifische Gruppe von Texten anvisieren möchtest, die keinem erkennbaren Muster folgt.
(Tatsächlich kannst du dies im Normalmodus tun, indem du mit dem Cursor auf dem "N" bist und gu/Two eingibst: "Kleinschreibung von hier bis zum nächsten Vorkommen des Ausdrucks 'Two' anwenden". Ich finde es auch intuitiver, dies im visuellen Modus zu tun.)
Den visuellen Modus starten
Es gibt drei verschiedene visuelle Modi in Vim.
- v - Zeichenweiser visueller Modus
- V - Zeilenweiser visueller Modus
- Ctrl-v - Blockweiser visueller Modus
Der zeichenweise visuelle Modus wird verwendet, um einzelne Zeichen auszuwählen.
Der zeilenweise visuelle Modus wählt ganze Zeilen aus. Es ist üblich, in der Programmierung Änderungen zeilenweise vorzunehmen. In den frühen Tagen der Programmierung basierten viele Editoren auf Zeilen, wie Ed.
Der blockweise visuelle Modus ermöglicht es dir, "Spalten" und "Zeilen" auszuwählen. Er bietet dir mehr Freiheit, dich in diesem Modus zu bewegen als in den ersten beiden. Es gibt auch bestimmte Dinge, die du nur im blockweisen visuellen Modus tun kannst (dazu später mehr).
In der unteren linken Ecke deines Vim-Fensters siehst du entweder -- VISUAL --, -- VISUAL LINE -- oder -- VISUAL BLOCK --, um anzuzeigen, in welchem visuellen Modus du dich befindest.
Während du dich in einem visuellen Modus befindest, kannst du zu einem anderen visuellen Modus wechseln, indem du entweder v, V oder Ctrl-v drückst. Wenn du dich beispielsweise im zeilenweisen visuellen Modus befindest und zum blockweisen visuellen Modus wechseln möchtest, tippe einfach Ctrl-v. Probier es aus!
Es gibt noch eine weitere Möglichkeit, den visuellen Modus zu starten:
- gv - Dies startet den visuellen Modus im selben ausgewählten Bereich wie der letzte visuelle Modus. Angenommen, du hast gerade eine Großschreiboperation auf einem Textblock angewendet und vergessen, eine weitere Operation auf denselben Textblock anzuwenden. Statt zurückzugehen, neu auszuwählen und die Operation anzuwenden, kannst du die ersten beiden Schritte überspringen, wenn du gv verwendest. Es wird denselben Auswahlbereich wie der letzte erstellen, sodass du nur die benötigte Operation anwenden musst.
Ziemlich praktisch!
Im visuellen Modus bewegen
Sobald du dich in einem visuellen Modus befindest, kannst du deine Auswahl mit Vim-Bewegungen erweitern, wie hjkl. Weitere Informationen zu Bewegungen findest du unter :h motion.txt.
Während du dich in der visuellen Auswahl befindest, siehst du deinen Cursor an einem Ende der Auswahl. Er kann entweder oben links oder unten rechts sein. Du kannst deine Auswahl in eine Richtung erweitern, wo immer sich dein Cursor befindet. Wenn sich dein Cursor am unteren Ende befindet, wird durch Drücken von j die Auswahl nach unten erweitert, aber durch Drücken von k wird die Auswahl nicht nach oben erweitert, sondern nach oben verkleinert. Was ist, wenn du deine Auswahl nach oben und unten erweitern musst?
Du musst die Position deines Cursors in die Richtung ändern, in die du dich erweiterst.
Du kannst die Position deines Cursors mit o oder O während der visuellen Auswahl ändern. Wenn sich dein Cursor also am unteren Ende der Auswahl befindet und du nach oben erweitern möchtest, ändere die Cursorposition mit o und gehe mit k nach oben.
Den visuellen Modus verlassen
Es gibt drei Möglichkeiten, den visuellen Modus zu verlassen:
- esc
- Ctrl-c
- Dieselbe Taste wie dein aktueller visueller Modus
Die ersten beiden sind sinnvoll. Hier ist, was das letzte bedeutet: Wenn du dich im zeilenweisen visuellen Modus (V) befindest, kannst du den zeilenweisen visuellen Modus verlassen, wenn du erneut V drückst. Wenn du dich im zeichenweisen visuellen Modus befindest, verlässt du den visuellen Modus, wenn du v drückst. Wenn du dich im blockweisen visuellen Modus befindest, verlässt du den visuellen Modus, wenn du ctrl-v drückst.
Operatoren im visuellen Modus
Vim ist ein modaler Editor. Das bedeutet, dass dieselbe Taste je nach Modus unterschiedlich funktionieren kann. Glücklicherweise überschneiden sich viele Tasten im visuellen Modus mit den Tasten im Normalmodus. Wenn du deine Operatoren im Normalmodus kennst, bist du gut vorbereitet. Wenn nicht, mach dir keine Sorgen, du musst dir nur die wichtigen merken (sie sind mnemonik-freundlich).
Um Operatoren im visuellen Modus zu verwenden, wähle zuerst einen Textbereich visuell aus (v/V/Ctrl-v + Bewegung) und drücke dann eine Operatorentaste im visuellen Modus. Das ist alles.
Hier sind einige der gebräuchlichsten:
- u - kleinschreiben
- U - großschreiben
- d - löschen
- c - ändern
- y - kopieren
- > - einrücken
- < - ausrücken
Für weitere Operatoren siehe :h visual-operators.
Visual Mode und Ex-Befehle
Du kannst Ex-Befehle auf visuell ausgewählte Bereiche anwenden. Angenommen, du hast folgenden Text: const one = "one"; const two = "two"; Und du möchtest const nur in diesen beiden Zeilen durch let ersetzen. Du kannst beide Zeilen mit dem zeilenweisen visuellen Modus (V) hervorheben und die Ersetzung mit:
- s/const/let/g
ausführen. Jeder Ex-Befehl funktioniert im visuellen Modus.
Wiederholen des visuellen Modus
Der Punktbefehl (.) von Vim wiederholt die letzte Änderung. Wenn du eine Operation im visuellen Modus wiederholst, wird dieselbe Operation auf denselben Textblock angewendet.
Angenommen, du hast diese beiden Zeilen mit dem zeilenweisen visuellen Modus gelöscht (Vjd). const one = "one"; const two = "two"; Das nächste Mal, wenn du den Punktbefehl verwendest, werden auch die nächsten beiden Zeilen gelöscht.
Mehrere Texte einfügen
Du kannst mehrere Texte mit dem blockweisen visuellen Modus einfügen.
Angenommen, du hast folgendes und möchtest am Ende jeder Zeile ein Semikolon hinzufügen. const one = "one" const two = "two" const three = "three" So geht's:
1. Beginne mit deinem Cursor in der ersten Spalte, erste Zeile (das "c" in const one) 2. Wähle den blockweisen visuellen Modus aus, gehe zwei weitere Zeilen nach unten (Ctrl-v 2j). Es werden alle "c"s ausgewählt. 3. Wähle horizontal bis zum Ende ($) 4. Anhängen (A) 5. Tippe ; 6. Verlasse den visuellen Modus (esc)
Jetzt siehst du, dass ; an alle Zeilen angehängt wurde. Im blockweisen visuellen Modus kannst du Texte mit A oder I an mehreren Zeilen anhängen oder einfügen. Du kannst auch mehrere Zeichen mit r{Zeichen} ersetzen.
Eine Möglichkeit, Zeichen in mehreren Zeilen mit einem beliebigen visuellen Modus einzufügen, besteht darin, den Befehl :normal! zu verwenden (:h normal). Mit diesem Befehl kannst du einen Befehl im Normalmodus ausführen.
So kannst du ; mit dem zeichenweisen visuellen Modus einfügen:
1. Wähle alle 3 Zeilen aus (v2j) 2. Gib :normal! A; ein
TIPP: Wenn du dich nicht im blockweisen visuellen Modus befindest und Texte anhängen (A) oder einfügen (I) möchtest, denke daran, dass du vom aktuellen visuellen Modus mit Ctrl-v in den blockweisen visuellen Modus wechseln kannst.
Zahlen inkrementieren
Du kannst Spalten von Zahlen mit Ctrl-a/Ctrl-x in Vim inkrementieren. Hier erfährst du, wie du es auf mehrere Zeilen anwenden kannst.
Angenommen, du hast folgenden Text:
<div id="app