Vim

Aus ConeleK-Wiki

Wechseln zu: Navigation, Suche

Diese Seite enthält eine Aufstellung nützlicher Befehle für den vi/vim. Der Befehl vimtutor führt einen sanft in die Bedienung des Vim ein.

Inhaltsverzeichnis

Modi des vim

Inhalt

Meistbenutzte Modi des vim:

Normal-/Befehlsmodus

Inhalt

Einfügemodus

Inhalt

Kommandozeilenmodus

Inhalt

Visueller Modus

Inhalt

Basisbefehle

Inhalt

Durch wiederholtes Drücken von ESC erreicht man immer wieder den Anfangs-/Befehlsmodus.

Bewegungsbefehle

Inhalt

Bewegen kann man den Cursor über die Pfeiltasten oder über hjkl, was etwas schneller, aber auch gewöhnungsbedürftig ist, da man in der Zehnfingerstellung verbleiben kann.

Den Zeilenanfang erreicht man mit ^ oder der Null 0, das Zeilenende mit $.

Die aktuelle Zeilenummer erhält man mit CTRL+G. Den Dokumentenanfang erreicht man mit gg, das Dokumentenende mit G. An eine beliebige Zeile, sagen wir 1023, kann man sich durch den folgende Befehl bewegen:

1023G

Das nächste Wort erreicht man mittels w (word), das vorige Wort mit b(back), zum Wortende des aktuellen Wortes kommt man mittels e

          gg

         
          k
^,0  b  <-h   l->   w,e   $
          j
         

          G 

Jedem dieser Bewegungsbefehle kann man einen Faktor voranstellen, der angibt, wie häufig die Operation ausgeführt werden soll: Bei der Eingabe von 3w bewegt man sich 3 Wörter vorwärts.

Einfügen

Inhalt

Ausgangspunkt ist der Normalmodus. Die folgenden Befehle wechseln in den Einfügemodus:

Löschen

Inhalt

Das Löschkommando setzt sich aus dem Löschoperator d und einer Bewegungsrichtung zusammen; man kann alle oben erwähnten Bewegungsbefehle (^,$,e,w,2w,b,3b,...) nutzen.

Etwas anders verhält es sich mit dem Löschoperator für ganze Zeilen: Um eine Zeile zu löschen, tippt man

dd

Genau wie zuvor bei den Bewegungsrichtungen gibt es auch hier die Möglichkeit, eine Wiederholungszahl anzugeben. Um bspw. 3 Zeilen (die aktuelle und die beiden folgenden) zu löschen, wählt man:

3dd

Ersetzen

Inhalt

Aus dem Normalmodus heraus kann man mit dem Befehl r<Ersatzzeichen> (Replace) ganz bequem einzelne Zeichen ersetzen. Möchte man das aktuell markierte Zeichen durch ein q ersetzen, dann tippt man:

rq

Man kann auch größere Bereiche mit dem Befehl c<Bewegung> (Change) ersetzen, dabei gelten die oben genannten Bewegungsrichtungen (0,$,e,b,...). Nach dem Befehl ist man im Einfügemodus und gibt den Ersatztext ein.

Undo, Redo und Repeat

Inhalt

Dies ist nicht zu verwechseln mit einer Wiederholung des zuletzt durchgeführten Befehls: . (Punkt, Repeat).

Zwischenablage

Inhalt

Der Löschbefehl wirkt wie ein Ausschneiden in einem normalen Texteditor: Die gelöschten Zeichen werden zwischengespeichert und man kann sie einfügen mittels p (Paste oder Put), dabei wird der Inhalt der Zwischenablage stets nach der aktuellen Cursorposition eingefügt, was bei ganzen Zeilen (dd,2dd,...) dazu führt, dass die neue Zeile unter der aktuellen eingefügt wird.

Anwendungsfälle

Inhalt

Man Page eines Befehls öffnen

Inhalt

Die zu einem Befehl gehörige Man Page kann man öffnen, indem man den Cursor im Namen des Befehls platziert und den Befehl K startet. Verlassen kann man die Man Page wie gewohnt mit q.

Eine referenzierte Datei öffnen

Inhalt

Wenn man im Vim entwickelt, möchte man manchmal eine Datei öffnen, die bspw. bei C/C++ mit einem #include eingebunden wird. Im Vim ist dies sehr einfach: Man bewegt sich mit dem Cursor auf den Namen der referenzierten Datei und startet den Befehl (go file):

:gf

Leere Zeilen entfernen

Inhalt
:g/^$/d

Der Befehl :g/[regex]/[cmd] nimmt einen regulären Ausdruck [regex] (hier ^$- ^ ist der Zeilenanfang, $ das Zeilenende) und wendet das zuletzt stehende Kommando [cmd] (hier d) auf alle zutreffenden Zeilen an.

Blockweise einkommentieren

Inhalt

Quelle: [1]

  1. Erste Spalte des zu kommentierenden Textblocks markieren (Ctrl+v, kann mittels Ctrl+v auch wieder verlassen werden)
  2. In den Einfügemodus wechseln mit I (großes i).
  3. Zeilenkommentarzeichen eingeben (bspw. # bei der BASH oder // bei C)
  4. ESC, um den Einfügemodus zu verlassen
  5. (Manchmal erscheinen die Zeichen erst, wenn man eine weitere Taste drückt)

Blockweise auskommentieren

Inhalt

Haben alle Zeilen dengleichen Anfang (bspw. ###), dann kann man wie in vorigem Abschnitt vorgehen:

  1. Die zu löschenden Kommentarzeichen als Textblock markieren (Ctrl+v, kann mittels Ctrl+v auch wieder verlassen werden)
  2. Löschen mittels x.
  3. Der Editor kehrt automatisch in den Anfangsmodus zurück.
Persönliche Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
CEK Module
Kategorien
Wiki-Info
Werkzeuge