Global
- :h[elp] Stichwort - Hilfe zum Schlüsselwort öffnen
 - :sav[eas] Datei - Speichern unter
 - :clo[se] - Ansicht schließen
 - :ter[minal] - Ein Terminal Fenster öffnen
 - K - Handbuchseite für das Wort unter dem Cursor öffnen
 
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
 - gj - move cursor down (multi-line text)
 - gk - move cursor up (multi-line text)
 - H - Zum Anfang des Bildschirms springen
 - M - Zur Mitte des Bildschirms springen
 - L - Zum Ende des Bildschirms springen
 - w - Springe vorwärts zum Wortanfang
 - W - Springe vorwärts zum Wortanfang (Wort kann Interpunktion enthalten)
 - e - Springe vorwärts zum Wortende
 - E - Springe vorwärts zum Wortende (Wort kann Interpunktion enthalten)
 - b - Springe rückwärts zum Wortanfang
 - B - Springe rückwärts zum Wortanfang (Wort kann Interpunktion enthalten)
 - ge - Springe rückwärts zum Wortende
 - gE - Springe rückwärts zum Wortende (Wort kann Interpunktion enthalten)
 - 
            % - Zum entsprechenden Zeichen springen. (Unterstützt werden: '()', '{}', '[]' - mehr dazu mittels 
:h_matchpairsin vim) - 0 - Springe zum Zeilenanfang
 - ^ - Springe zum ersten Zeichen der Zeile
 - $ - Springe zum Zeilenende
 - g_ - Springe zum letzten Nicht-Leerzeichen der Linie
 - gg - Springe zum Anfang des Dokuments
 - G - Springe zum Ende des Dokuments
 - 5gg or 5G - Springe zu Zeile 5
 - gd - move to local declaration
 - gD - move to global declaration
 - fx - Springe zum nächsten 'x' auf der Linie
 - tx - Springe vor das nächste 'x' auf der Linie
 - Fx - Springe zum vorherigen 'x' auf der Linie
 - Tx - Springe hinter das vorherige 'x' auf der Linie
 - ; - Wiederhole die letzte Bewegung mittels f, t, F oder T
 - , - Wiederhole die letzte Bewegung mittels f, t, F oder T in entgegengesetzer Richtung
 - } - Springe zum nächsten Paragraphen (oder Funktion/Block)
 - { - Springe zum vorherigen Paragraphen (oder Funktion/Block)
 - zz - Zentriere den Cursor
 - zt - position cursor on top of the screen
 - zb - position cursor on bottom of the screen
 - Ctrl + e - Bewege den Bildschirm eine Zeile runter (ohne den Cursor zu verschieben)
 - Ctrl + y - Bewege den Bildschirm eine Zeile hoch (ohne den Cursor zu verschieben)
 - 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
 
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
 - Ctrl + h - Entferne ein Zeichen vor dem Cursor im Eingabe-Modus
 - Ctrl + w - Entferne ein Wort vor dem Cursor im Eingabe-Modus
 - Ctrl + j - Starte eine neue Zeile im Eingabe-Modus
 - Ctrl + t - Zeile um eine Einheit einrücken (nach rechts verschieben) im Eingabe-Modus
 - Ctrl + d - Zeile um eine Einheit ausrücken (nach links verschieben) im Eingabe-Modus
 - Ctrl + n - Nächstes passendes Wort vor dem Cursor einfügen (auto-complete) im Eingabe-Modus
 - Ctrl + p - Vorheriges passendes Wort vor dem Cursor einfügen (auto-complete) im Eingabe-Modus
 - Ctrl + rx - Füge den Inhalt von Register x ein
 - Ctrl + ox - Wechseln Sie vorübergehend in den Normalmodus, um nur einen Normalmodus Befehl -x zu verwenden.
 - Esc or Ctrl + c - Eingabe-Modus verlassen
 
Editieren
- r - Einzelnes Zeichen ersetzen
 - R - replace more than one character, until ESC is pressed.
 - J - Die Zeile unterhalb zur aktuellen Zeile hinzufügen
 - gJ - Die Zeile unterhalb zur aktuellen Zeile ohne Abstand hinzufügen
 - gwip - Absatz neu umbrechen
 - g~ - Groß-/Kleinschreibung umschalten bis zur Bewegung
 - gu - In Kleinschreibung ändern bis zur Bewegung
 - gU - In Großschreibung ändern bis zur Bewegung
 - cc - Ersetzen der kompletten Zeile
 - c$ or C - Ersetzen bis zum Zeilenende
 - ciw - Ersetzen des gesamten Worts
 - cw or ce - Ersetzen bis zum Ende des Worts
 - 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
 - U - Letzte geänderte Zeile wiederherstellen (rückgängig machen)
 - 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 - Springe zum anderen Ende der Markierung
 - Ctrl + v - Blockweise Visuellen Modus starten
 - O - Springe zur anderen Blockecke
 - aw - Wort markieren
 - ab - Block mit ()
 - aB - Block mit {}
 - at - Block mit <>
 - ib - Innerer Block mit ()
 - iB - Innerer Block mit {}
 - it - Innerer Block mit <>
 - Esc or Ctrl + c - 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
 - u - Markierten Text in Kleinschreibung ändern
 - U - Markierten Text in Großschreibung ändern
 
Register
- :reg[isters] - Zeige den Inhalt der Register
 - "xy - Kopiere in das Register x
 - "xp - Füge den Inhalt von Register x ein
 - "+y - Kopiere in die System Zwischenablage
 - "+p - Füge den Inhalt von der System Zwischenablage ein
 
             0 - Zuletzt kopiert
             " - Register ohne Namen, zuletzt gelöscht oder kopiert
             % - Aktueller Dateinamen
             # - Alternativer Dateinamen
             * - Inhalt der Zwischenablage (X11 primary)
             + - Inhalt der Zwischenablage (X11 clipboard)
             / - Letztes Such-Muster
             : - Letzte Kommando-Zeile
             . - Zuletzt eingefügter (geschriebener) Text
             - - Zuletzt gelöscht (weniger als eine Zeile)
             = - Ausdruck Register
             _ - Schwarzes Loch Register
          
Markierungen und Positionen
- :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'
 - `0 - Zur Position gehen an der Vim zuvor beendet wurde
 - `" - Zur Position gehen an der beim letzen Mal gearbeitet wurde
 - `. - Zur Position der letzten Änderung gehen
 - `` - Zur Position vor dem letzten Sprung gehen
 - :ju[mps] - Liste alle Sprünge
 - Ctrl + i - Zur neueren Position in der Sprungliste gehen
 - Ctrl + o - Zur älteren Position in der Sprungliste gehen
 - :changes - Liste alle Änderungen
 - g, - Zur neueren Position in der Änderungsliste gehen
 - g; - Zur älteren Position in der Änderungsliste gehen
 - Ctrl + ] - Zum Schlagwort unter dem Cursor gehen
 
Makros
- qa - Starte Aufnahme 'a'
 - q - Stoppe die Aufnahme
 - @a - Führe das Makro 'a' aus
 - @@ - Führe das letzte Makro nochmals aus
 
Kopieren/Auschneiden und Einfügen
- yy - Zeile kopieren
 - 2yy - 2 Zeilen kopieren
 - yw - Zeichen des Worts unterm Cursor bis zum nächsten Wort kopieren.
 - yiw - Wort kopieren
 - yaw - Zeichen des Worts unterm Cursor und die Abstände davor oder danach kopieren
 - y$ or Y - bis Zeilenende kopieren
 - p - Zwischenablage nach dem Cursor einfügen
 - P - Zwischenablage vor dem Cursor einfügen
 - gp - put (paste) the clipboard after cursor and leave cursor after the new text
 - gP - put (paste) before cursor and leave cursor after the new text
 - dd - Löschen (Ausschneiden) der aktuellen Zeile
 - 2dd - Löschen (Ausschneiden) von 2 Zeilen (aktuelle und folgende)
 - dw - Zeichen des Worts unterm Cursor bis zum nächsten Wort löschen (ausschneiden).
 - diw - Wort löschen (ausschneiden)
 - daw - Zeichen des Worts unterm Cursor und die Abstände davor oder danach löschen (ausschneiden)
 - :3,5d - delete lines starting from 3 to 5
 
e.g.
            :.,$d - From the current line to the end of the file 
            :.,1d - From the current line to the beginning of the file 
            :10,1d - From the 10th line to the beginning of the file 
          
- :g/{pattern}/d - delete all lines containing pattern
 - :g!/{pattern}/d - delete all lines not containing pattern
 - d$ or D - Löschen (Ausschneiden) bis Zeilenende
 - x - Zeichen löschen (ausschneiden)
 
Text einrücken
- >> - Zeile um eine Einheit einrücken (nach rechts verschieben)
 - << - Zeile um eine Einheit ausrücken (nach links verschieben)
 - >% - Block mit () oder {} einrücken (Cursor auf Klammer)
 - <% - de-indent a block with () or {} (cursor on brace)
 - >ib - Innerer Block mit () einrücken
 - >at - Block mit <> einrücken
 - 3== - 3 Zeilen neu ausrichten
 - =% - Block mit () oder {} neu ausrichten (Cursor auf Klammer)
 - =iB - Inner Block mit {} neu ausrichten
 - gg=G - Gesamter Buffer neu ausrichten
 - ]p - Einfügen und analog zur aktuellen Zeile einrücken
 
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 - Datei in allen Tabs schreiben und schließen
 
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[lsearch] - Entferne alle Markierungen von Such-Treffern
 
Suchen in mehreren Dateien
- :vim[grep] /pattern/ {`{file}`} - Muster suchen in mehreren Dateien
 
- :cn[ext] - Springe zur nächsten Übereinstimmung
 - :cp[revious] - Springe zur vorherigen Übereinstimmung
 - :cope[n] - Öffne ein Fenster mit der Liste von Übereinstimmungen
 - :ccl[ose] - Schliesse das Fenster mit der Liste von Übereinstimmungen
 
Tabs
- :tabnew or :tabnew {page.words.file} - Datei in neuem Tab öffnen
 - Ctrl + wT - Aktuell geteiltes Fenster in eigenen Tab bewegen
 - gt or :tabn[ext] - Zum nächsten Tab springen
 - gT or :tabp[revious] - Zum vorigen Tab springen
 - #gt - Zum Tab mit der Nummer # springen
 - :tabm[ove] # - Aktuellen Tab an #te Position bewegen (indiziert von 0 an)
 - :tabc[lose] - Aktuellen Tab, inklusiver aller Fenster, schließen
 - :tabo[nly] - Alle Tabs schließen, außer dem Aktuellen
 - 
            :tabdo command - Führt 
commandfür alle Tabs aus (z.B.::tabdo q- Schließt alle geöffneten Tabs) 
Arbeit mit mehreren Dateien
- :e[dit] Datei - Datei im neuen Buffer bearbeiten
 - :bn[ext] - Springe zum nächsten Buffer
 - :bp[revious] - Springe zum vorherigen Buffer
 - :bd[elete] - Buffer löschen (Datei schließen)
 - :b[uffer]# - Springe zum Buffer mit Index #
 - :b[uffer] file - Springe zum Buffer einer Datei
 - :ls or :buffers - Alle offenen Buffer auflisten
 - :sp[lit] Datei - Datei im neuen Buffer bearbeiten und Fenster horizontal teilen
 - :vs[plit] Datei - Datei im neuen Buffer bearbeiten und Fenster vertikal teilen
 - :vert[ical] ba[ll] - Alle Buffer als vertikale Fenster bearbeiten
 - :tab ba[ll] - Alle Buffer als Tabs bearbeiten
 - Ctrl + ws - Fenster horizontal teilen
 - Ctrl + wv - Fenster vertikal teilen
 - Ctrl + ww - Fenster wechseln
 - Ctrl + wq - Fenster schließen
 - Ctrl + wx - Aktuelles Fenster mit nächstem tauschen
 - Ctrl + w= - Alle Fenster gleich gross machen
 - 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)
 - Ctrl + wH - make current window full height at far left (leftmost vertical window)
 - Ctrl + wL - make current window full height at far right (rightmost vertical window)
 - Ctrl + wJ - make current window full width at the very bottom (bottommost horizontal window)
 - Ctrl + wK - make current window full width at the very top (topmost horizontal window)
 
Diff
- zf - Fold definieren bis zur Bewegung
 - zd - Fold unter dem Cursor löschen
 - za - Fold unter dem Cursor umschalten
 - zo - Fold unter dem Cursor öffnen
 - zc - Fold unter dem Cursor schliessen
 - zr - Alle Folds um ein Level öffnen (reduzieren)
 - zm - Alle Folds um ein Level schliessen
 - zi - Folding Funktionalität umschalten
 - ]c - Springe zum Start der nächsten Änderung
 - [c - Springe zum Start der vorherigen Änderung
 - do or :diffg[et] - Hole den Unterschied (vom anderen Buffer)
 - dp or :diffpu[t] - Gebe den Unterschied (an den anderen Buffer)
 - :diffthis - Mache das aktuelle Fenster Teil vom Diff
 - :dif[fupdate] - Aktualisiere den Diff
 - :diffo[ff] - Schalte den Diff Modus für das aktuelle Fenster aus