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_matchpairs
in 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
command
fü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