This commit is contained in:
Mathias Schneider
2026-04-01 13:35:27 +02:00
parent 82d7e0e888
commit 07b79e33fa
8 changed files with 920 additions and 0 deletions
+214
View File
@@ -0,0 +1,214 @@
## Modi
```text
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)
```text
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
```text
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:
```text
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)
```text
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
```text
/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
```text
: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
```text
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
```text
. 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
```text
"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)
```text
:!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
```vim
" 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
```