Files
it-know-how/Vim Cheatsheet.md
T
2026-03-27 12:58:01 +01:00

5.0 KiB
Executable File
Raw Blame History

Modi

i    In den Insert-Modus (vor Cursor)
I    Insert am Zeilenanfang
a    Insert nach Cursor
A    Insert am Zeilenende
o    Neue Zeile unterhalb + Insert
O    Neue Zeile oberhalb + Insert

<Esc>  Zurück in Normalmodus

v    Visueller Modus (Zeichenweise)
V    Visueller Modus (Zeilenweise)
<C-v> Visueller Blockmodus

Navigation (Normalmodus)

h j k l   Links / runter / hoch / rechts

0         Zeilenanfang
^         Erstes nicht-leer Zeichen
$         Zeilenende

w         Zum nächsten Wortanfang
b         Zum vorherigen Wortanfang
e         Zum Wortende
W B E     Wie oben, aber Worte durch Leerzeichen getrennt

gg        Erste Zeile
G         Letzte Zeile
ngg / nG  Zu Zeile n

H         Oberer Bildschirmrand
M         Mittlerer Bildschirmrand
L         Unterer Bildschirmrand

Ctrl-u    Halbe Seite hoch
Ctrl-d    Halbe Seite runter
Ctrl-b    Seite hoch
Ctrl-f    Seite runter

Basis-Bearbeitung

x       Zeichen unter Cursor löschen
X       Zeichen links vom Cursor löschen
r<char> Zeichen ersetzen

dd      Zeile löschen (cut)
D       Bis zum Zeilenende löschen
cc      Zeile ändern (delete + insert)
C       Bis zum Zeilenende ändern

yy      Zeile kopieren
Y       Alias für yy
p       Einfügen NACH Cursor/Zeile
P       Einfügen VOR Cursor/Zeile

u       Undo
Ctrl-r  Redo

J       Nächste Zeile an aktuelle anhängen
>>      Zeile einrücken (indent)
<<      Zeile ausrücken (unindent)

Mit Counts & Bewegungen

Viele Befehle funktionieren mit einer Anzahl (count) und einer Bewegung:

3w      3 Wörter vor
5j      5 Zeilen runter

d3w     3 Wörter löschen
c$      Bis Zeilenende ändern
y0      Bis Zeilenanfang kopieren

Textobjekte (im Normal- / Visuellen Modus)

aw      A word (inkl. Leerzeichen)
iw      Inner word
as      A sentence
is      Inner sentence
ap      A paragraph
ip      Inner paragraph

a" / i"  Text in Anführungszeichen
a' / i'  Text in einfachen Quotes
a) / i)  Text in Klammern (usw. für {}, [], <>)

Beispiele:
ci"     Inhalt von "..." ändern
da(     Klammerausdruck inklusive Klammern löschen
viw     Wort unter Cursor markieren

Suchen & Ersetzen

/word      Vorwärts nach „word“ suchen
?word      Rückwärts suchen
n          Nächster Treffer
N          Vorheriger Treffer

*          Wort unter Cursor vorwärts suchen
#          Wort unter Cursor rückwärts suchen

:%s/alt/neu/g        In gesamter Datei ersetzen
:%s/alt/neu/gc       Mit Bestätigung
:.,$s/alt/neu/g      Von aktueller Zeile bis Ende
:10,20s/alt/neu/g    In Zeilen 1020

Dateien, Buffers, Splits & Tabs

:e datei        Datei öffnen
:w              Speichern
:w name         Unter anderem Namen speichern
:q              Beenden
:q!             Beenden ohne Speichern
:wq / :x        Speichern und beenden
:qa             Alle Fenster schließen
:qa!            Alle schließen ohne Speichern

" Buffer (Dateien im Speicher)
:ls             Buffer-Liste
:buffer n       Buffer n öffnen
:bnext / :bn    Nächster Buffer
:bprev / :bp    Vorheriger Buffer
:bdelete        Buffer schließen

" Splits
:split datei    Horizontaler Split
:vsplit datei   Vertikaler Split
Ctrl-w s        Split horizontal
Ctrl-w v        Split vertikal
Ctrl-w w        Zum nächsten Split
Ctrl-w h/j/k/l  Split wechseln
Ctrl-w q        Split schließen

" Tabs
:tabnew         Neuer Tab
:tabclose       Tab schließen
:tabnext / :tn  Nächster Tab
:tabprev / :tp  Vorheriger Tab

Visual Mode Aktionen

v / V / Ctrl-v   Auswahl starten
y                Auswahl kopieren
d                Auswahl löschen
c                Auswahl ändern

>                Einrücken
<                Ausrücken
=                Auto-Indent (z.B. für Code)

:                Befehl auf Auswahl anwenden
                 (Bereich wird automatisch eingetragen)

Makros & Wiederholung

.         Letzte Änderung wiederholen

q<a>      Macro in Register a aufzeichnen
          (z.B. qa)
...       Aktionen ausführen
q         Aufzeichnung beenden

@a        Macro a ausführen
3@a       Macro 3x ausführen
@@        Letztes Macro wiederholen

Register

"0         Zuletzt kopiertes (y) ohne delete
"1"9      Verlaufsregister
""         Default-Register

"+         System-Clipboard (kopieren/einfügen mit OS)
"*         Auswahl-Clipboard (unter Linux/X11)

Beispiele:
"ayw       Wort in Register a kopieren
"ap        Inhalt von Register a einfügen
"+y        In System-Clipboard kopieren
"+p        Aus System-Clipboard einfügen

Kommandomodus (Ex-Befehle)

:!cmd        Externen Befehl ausführen
:r !cmd      Ausgabe von cmd einfügen
:r datei     Datei unter Cursor-Zeile einfügen

:set nu      Zeilennummern an
:set nonu    Zeilennummern aus
:set relativenumber    Relative Nummern
:set tabstop=4 shiftwidth=4 expandtab

Einfache .vimrc-Beispiele

" Zeilennummern
set number
set relativenumber

" Einrückung
set tabstop=4
set shiftwidth=4
set expandtab
set smartindent

" Suche
set ignorecase
set smartcase
set hlsearch
set incsearch

" Maus
set mouse=a