Global

  • :help Stichwort - Öffnet die Hilfe für das Stichwort
  • :o Datei - Öffnet die Datei
  • :saveas Datei - Speichern als...
  • :close - Schliesst das aktuelle Panel
  • K - open man page for word under the cursor

Cursor-Bewegungen

  • h - Cursor ein Zeichen nach links bewegen
  • j - Cursor eine Zeile nach unten bewegen
  • k - Cursor eine Zeile nach oben bewegen
  • l - Cursor ein Zeichen nach rechts bewegen
  • H - move to top of screen
  • M - move to middle of screen
  • L - move to bottom of screen
  • w - Sprung vorwärts zum Wortanfang
  • W - Sprung vorwärts zum Wortanfang (Wort kann Interpunktion enthalten)
  • e - Sprung vorwärts zum Wortende
  • E - Sprung vorwärts zum Wortende (Wort kann Interpunktion enthalten)
  • b - Sprung rückwärts zum Wortanfang
  • B - Sprung rückwärts zum Wortanfang (Wort kann Interpunktion enthalten)
  • % - move to matching character (default supported pairs: '()', '{}', '[]' - use :h matchpairs in vim for more info)
  • 0 - Sprung zum Zeilenanfang
  • ^ - Sprung zum ersten Zeichen der Zeile
  • $ - Sprung zum Zeilenende
  • g_ - Springt zum letzten nicht-leeren Charakter der Linie
  • gg - Sprung zum Anfang des Dokuments
  • G - Sprung zum Ende des Dokuments
  • 5G - Sprung zu Zeile 5
  • fx - Springe zum nächsten 'x' auf der Linie
  • tx - Springe vor das nächste 'x' auf der Linie
  • Fx - jump to previous occurence of character x
  • Tx - jump to after previous occurence of character x
  • ; - repeat previous f, t, F or T movement
  • , - repeat previous f, t, F or T movement, backwards
  • } - Springe zum nächsten Paragraphen (oder Funktion/Block)
  • { - Springe zum vorherigen Paragraphen (oder Funktion/Block)
  • zz - center cursor on screen
  • Ctrl + b - Springe eine Bildschirmseite zurück
  • Ctrl + f - Springe eine Bildschirmseite weiter
  • Ctrl + d - Springe eine halbe Bildschirmseite weiter
  • Ctrl + u - Springe eine halbe Bildschirmseite zurück
Tip Um eine Cursor-Bewegung zu wiederholen, ist diese mit einer Zahl zu prefixen. Beispiel: 4j bewegt den Cursor 4 Zeilen nach unten.

Eingabe-Modus - Text einfügen/anfügen

  • i - Einfügen vor dem Cursor
  • I - Einfügen am Zeilenanfang
  • a - Anfügen hinter dem Cursor
  • A - Anfügen am Zeilenende
  • o - Einfügen in einer neuen Zeile, unterhalb der aktuellen Zeile
  • O - Einfügen in einer neuen Zeile, oberhalb der aktuellen Zeile
  • ea - Anfügen am Wortende
  • Esc - Eingabe-Modus verlassen

Editieren

  • r - einzelnes Zeichen ersetzen
  • J - die Zeile unterhalb zur aktuellen Zeile hinzufügen
  • gJ - join line below to the current one without space in between
  • cc - Ersetzen der kompletten Zeile
  • cw - Ersetzen bis zum Ende des Wortes
  • c$ - Ersetzen bis zum Zeilenende
  • s - Zeichen löschen und ersetzen
  • S - Zeile löschen und ersetzen (wie cc)
  • xp - zwei Zeichen vertauschen (löschen und einfügen)
  • u - Änderung rückgängig
  • Ctrl + r - Wiederholen der letzten, rückgängig gemachten, Änderung
  • . - letztes Kommando wiederholen

Text markieren (Visueller Modus)

  • v - Visuellen Modus starten, Zeilen markieren, Kommando ausführen (wie y-kopieren)
  • V - zeilenweise Visuellen Modus starten
  • o - Sprung zum anderen Ende der Markierung
  • Ctrl + v - blockweise Visuellen Modus starten
  • O - Sprung zur anderen Blockecke
  • aw - Wort markieren
  • ab - Block mit ()
  • aB - Block mit {}
  • ib - innerer Block mit ()
  • iB - innerer Block mit {}
  • Esc - Visuellen Modus verlassen

Kommandos im Visuellen Modus

  • > - Text nach rechts rücken
  • < - Text nach links rücken
  • y - markierten Text kopieren
  • d - markierten Text löschen
  • ~ - Groß-/Kleinschreibung umschalten

Register

  • :reg - zeige den Inhalt der Register
  • "xy - Kopiere in das Register x
  • "xp - Füge den Inhalt vom Register x ein
Tip Register werden in ~/.viminfo gespeichert und beim nächsten Start von vim wieder geladen
Tip Register 0 enthält immer den Wert, der als letztes kopiert wurde

Markierungen

  • :marks - Liste alle Markierungen
  • ma - Erstelle die Markierung 'a' an dieser Position
  • `a - Springe zur Markierung 'a'
  • y`a - Kopiere bis zur Position der Markierung 'a'

Makros

  • qa - Starte Aufnahme 'a'
  • q - Stoppe die Aufnahme
  • @a - Führe das Makro 'a'
  • @@ - Führe das letzte Makro nochmals aus

Kopieren/Auschneiden und Einfügen

  • yy - Zeile kopieren
  • 2yy - 2 Zeilen kopieren
  • yw - Wort kopieren
  • y$ - bis Zeilenende kopieren
  • p - Zwischenablage nach dem Cursor einfügen
  • P - Zwischenablage vor dem Cursor einfügen
  • dd - Löschen (Ausschneiden) der aktuellen Zeile
  • 2dd - Löschen (Ausschneiden) von 2 Zeilen (aktuelle und folgende)
  • dw - Wort löschen (ausschneiden)
  • D - Löschen (Ausschneiden) bis Zeilenende
  • d$ - Löschen (Ausschneiden) bis Zeilenende
  • x - Zeichen löschen (ausschneiden)

Speichern und Beenden

  • :w - Datei schreiben, aber nicht schließen
  • :w !sudo tee % - Schreibe die aktuelle Datei mit sudo
  • :wq or :x or ZZ - Datei schreiben und schließen
  • :q - Datei schließen (schlägt fehl bei ungespeicherten Änderungen)
  • :q! or ZQ - Datei schließen und Änderungen verwerfen
  • :wqa - write (save) and quit on all tabs

Suchen und Ersetzen

  • /pattern - Muster suchen (vorwärts)
  • ?pattern - Muster suchen (rückwärts)
  • \vpattern - 'very magic' pattern: nicht-alphanummerische Charakter werden als regex-Symbole interpretiert (kein Escaping benötigt)
  • n - Suche wiederholen (selbe Richtung)
  • N - Suche wiederholen (entgegengesetzte Richtung)
  • :%s/old/new/g - Muster im gesamten Dokument ersetzen
  • :%s/old/new/gc - Muster im gesamten Dokument ersetzen, mit Bestätigung
  • :noh - Entferne alle Markierungen von Such-Treffern

Suchen in mehreren Dateien

  • :vimgrep /pattern/ {file} - Muster suchen in mehreren Dateien
e.g. :vimgrep /foo/ **/*
  • :cn - Sprung zum nächsten Muster (vorwärts)
  • :cp - Sprung zum nächsten Muster (rückwärts)
  • :copen - Fenster öffnen mit Liste von Mustern

Arbeit mit mehreren Dateien

  • :e Datei - Datei im neuen Buffer bearbeiten
  • :bnext or :bn - zum nächsten Buffer springen
  • :bprev or :bp - zum vorherigen Buffer springen
  • :bd - Buffer löschen (Datei schließen)
  • :ls - Alle offenen Buffer auflisten
  • :sp Datei - Datei im neuen Buffer bearbeiten und Fenster horizontal teilen
  • :vsp Datei - Datei im neuen Buffer bearbeiten und Fenster vertikal teilen
  • Ctrl + ws - Fenster horizontal teilen
  • Ctrl + ww - Fenster wechseln
  • Ctrl + wq - Fenster schließen
  • Ctrl + wv - Fenster vertikal teilen
  • Ctrl + wh - Cursor in das linke Fenster (vertikale Teilung)
  • Ctrl + wl - Cursor in das rechte Fenster (vertikale Teilung)
  • Ctrl + wj - Cursor in das untere Fenster (horizontale Teilung)
  • Ctrl + wk - Cursor in das obere Fenster (horizontale Teilung)

Tabs

  • :tabnew or :tabnew Datei - Datei in neuem Tab öffnen
  • Ctrl + wT - aktuell geteiltes Fenster in eigenen Tab bewegen
  • gt or :tabnext or :tabn - zum nächsten Tab springen
  • gT or :tabprev or :tabp - zum vorigen Tab springen
  • #gt - zum Tab mit der Nummer # springen
  • :tabmove # - aktuellen Tab an #te Position bewegen (indiziert von 0 an)
  • :tabclose or :tabc - aktuellen Tab, inklusiver aller Fenster, schließen
  • :tabonly or :tabo - alle Tabs schließen, außer dem Aktuellen
  • :tabdo command - führt command für alle Tabs aus (z.B.: :tabdo q - Schließt alle geöffneten Tabs)