6.9 KiB
Hier ist ein kompaktes, aber vollständiges VIM Cheat Sheet 📝
🔹 Modi in VIM
| Modus | Bedeutung | Wechsel |
|---|---|---|
| Normal Mode | Navigation & Befehle | Esc |
| Insert Mode | Texteingabe | i, a, o, etc. |
| Visual Mode | Text markieren | v, V, Ctrl+v |
| Command Mode | Speichern, Beenden, etc. | : |
🔹 Insert Mode Befehle
| Befehl | Wirkung |
|---|---|
i |
Vor Cursor einfügen |
a |
Nach Cursor einfügen |
I |
Am Zeilenanfang einfügen |
A |
Am Zeilenende einfügen |
o |
Neue Zeile unterhalb |
O |
Neue Zeile oberhalb |
🔹 Navigation (Normal Mode)
Zeichenweise
h ← j ↓ k ↑ l →
Wortweise
w nächstes Wort
b vorheriges Wort
e Wortende
Zeilenweise
0 Zeilenanfang
^ Erstes Nicht-Leerzeichen
$ Zeilenende
Datei
gg Anfang der Datei
G Ende der Datei
:n Gehe zu Zeile n
🔹 Löschen
| Befehl | Wirkung |
|---|---|
x |
Zeichen löschen |
dd |
Zeile löschen |
dw |
Wort löschen |
d$ |
Bis Zeilenende löschen |
d0 |
Bis Zeilenanfang löschen |
💡 Kombination: d + Bewegung funktioniert immer
(z.B. d3w = 3 Wörter löschen)
🔹 Kopieren & Einfügen
| Befehl | Wirkung |
|---|---|
yy |
Zeile kopieren |
yw |
Wort kopieren |
p |
Nach Cursor einfügen |
P |
Vor Cursor einfügen |
Register
Vor alle Kopieren oder Einfügen Befehle kann ein "3 gestellt werden, um ins 3. Register zu schreiben bzw. daraus heraus zu lesen. Z.b. kopiert "7yw das Wort ins 7. Register und "4p fügt das 4. Register nach dem Curser ein.
💡 Das spezielle Register +/* ist das System-Clipboard, sehr Praktisch zum Austausch von Text mit anderen Programmen
Alle Register ansehen: :reg
💡 Das spezielle Register % enthält den aktuellen Dateipfad -> aktuelle Dateipfad in System-Clipboard: :let @+=@%.
🔹 Undo / Redo
u Undo
Ctrl+r Redo
🔹 Visual Mode
| Befehl | Wirkung |
|---|---|
v |
Zeichenweise markieren |
V |
Ganze Zeile markieren |
Ctrl+v |
Block markieren |
Nach Markierung:
d löschen
y kopieren
> einrücken
< ausrücken
🔹 Suchen & Ersetzen
/text Vorwärts suchen
?text Rückwärts suchen
n Nächstes Ergebnis
N Vorheriges Ergebnis
Ersetzen:
:%s/alt/neu/g Ganze Datei
:s/alt/neu/g Aktuelle Zeile
:%s/alt/neu/gc Mit Bestätigung
Nutze "echtes" RegEx ("very magic"):
/\v...
zB
/\vab?c
findet abc und ac . Das würde mit herkömmlicher Vim RegEx nicht funktionieren
Suchen und ersetzen
:%s/\vfoo (ab?c)(bar)/bas \1 \2/
🔹 Speichern & Beenden
:w Speichern
:q Beenden
:wq Speichern & Beenden
:x Speichern & Beenden
:q! Ohne Speichern beenden
🔹 Fenster & Tabs
:split Horizontal teilen
:vsplit Vertikal teilen
Ctrl+w w Zwischen Fenstern wechseln
:tabnew Neuer Tab
gt Nächster Tab
gT Vorheriger Tab
🔹 Nützliche Shortcuts
. Letzte Aktion wiederholen
>> Zeile einrücken
<< Zeile ausrücken
ciw Wort ändern
cc Zeile ändern
J Zeilen zusammenführen
🔹 Makros
qa Aufnahme in Register a starten
q Aufnahme stoppen
@a Makro a ausführen
@@ Letztes Makro wiederholen
🔹 Zahlen-Präfixe (Sehr wichtig!)
Viele Befehle lassen sich multiplizieren:
3dd 3 Zeilen löschen
5w 5 Wörter vor
2yy 2 Zeilen kopieren
Zeilennummern aus- und anschalten
🔹 Absolute Zeilennummern
Einschalten:
:set number
Ausschalten:
:set nonumber
Toggle:
:set number!
🔹 Relative Zeilennummern
Einschalten:
:set relativenumber
Ausschalten:
:set norelativenumber
Toggle:
:set relativenumber!
🔹 Absolute + Relative kombinieren (Sehr beliebt 🔥)
Viele nutzen diese Kombination:
:set number relativenumber
👉 Ergebnis:
- Aktuelle Zeile = absolute Nummer
- Alle anderen Zeilen = relative Nummern
Beispiel:
8
2
1
10 ← aktuelle Zeile
1
2
3
Das ist perfekt für Bewegungen wie:
5j
3k
🔹 Dauerhaft aktivieren (.vimrc)
In deiner ~/.vimrc:
set number
set relativenumber
🔹 Smart Toggle Mapping (Optional ⭐)
Viele nutzen ein Keybinding:
nnoremap <leader>n :set number! relativenumber!<CR>
Dann kannst du mit:
\ n
(beim Standard-leader) beide gleichzeitig toggeln.
Block Aus- und Einkommentieren
🔹 1️⃣ Rein mit Vim (ohne Plugin)
✅ Ganze Zeilen im Visual Mode kommentieren
Schritt 1: Block markieren
V→ Zeilenweise markierenj / k→ Bereich wählen
Schritt 2: Kommentarzeichen einfügen
Beispiel für #:
:s/^/# /
Im Visual Mode einfach:
:'<,'>s/^/# /
👉 Fügt # am Anfang jeder markierten Zeile ein.
🔹 Auskommentieren
:'<,'>s/^# //
🔹 Noch schneller (ohne : tippen)
Markieren mit V, dann:
:s/^/# /
Vim setzt '<,'> automatisch.
🔹 2️⃣ Noch effizienter: Visual Block Mode (Sehr elegant ⚡)
Perfekt für feste Kommentarzeichen wie #, //, --.
Schritt 1
Ctrl + v
Schritt 2
Mit j/k mehrere Zeilen markieren (nur Spalte 0)
Schritt 3
Shift + i
#
Esc
💥 Vim fügt das in alle markierten Zeilen ein.
🔹 Entfernen mit Block Mode
Ctrl + v- Erste 2 Zeichen (
#) markieren d
🔹 3️⃣ Beste Lösung: Plugin (Empfohlen 🔥)
Wenn du regelmäßig kommentierst → nimm ein Plugin.
Sehr beliebt:
- vim-commentary von Tim Pope
Installation (mit vim-plug):
Plug 'tpope/vim-commentary'
Nutzung:
gcc→ aktuelle Zeile toggelngc(im Visual Mode) → Block toggeln
💎 Vorteil:
- erkennt automatisch Kommentarzeichen je nach Dateityp
- funktioniert mit
//,#,--,/* */, etc.
🔹 4️⃣ Absolute Power-User Lösung (Ohne Plugin, aber smart)
In .vimrc:
vnoremap <leader>c :s/^/# /<CR>
vnoremap <leader>u :s/^# //<CR>
Dann:
\c → kommentieren
\u → auskommentieren
🔥 Meine Empfehlung
| Wenn du... | Lösung |
|---|---|
| Nur selten kommentierst | Visual Block Mode |
| Viel programmierst | vim-commentary |
| Minimalistisch bleiben willst | eigenes Mapping |
Verschiedenes
%: zur nächsten KlammerTOhtml: HTML Export:ls: Buffer anzeigen ->:b 3den 3. Buffer öffnen.: letzte Aktion wiederholen:e path/to/fileöffnet Datei, nur:eaktualisiert die geöffnete Datei,:e!verwirft dabei alle Änderungenq:: öffne Befehlsbuffer- Dort kann man z.B. mit
"+yyBefehle ins Clipboard kopieren
- Dort kann man z.B. mit