Zum Inhalt springen

vi / vim

vi ist der älteste und am weitesten verbreitete Terminal-Editor unter Unix/Linux. vim (Vi IMproved) ist die moderne, erweiterte Version. Auf nahezu jedem Linux-System ist mindestens vi vorhanden – oft zeigt vi auf vim.

Terminal-Fenster
vi datei.txt
vim datei.txt

Der wichtigste Unterschied zu anderen Editoren: vim ist modal. Tasten haben je nach aktivem Modus unterschiedliche Bedeutungen. Wer das nicht weiß, ist verloren – wer es verstanden hat, kommt zurecht.

┌─────────────────────────────────────────────┐
│ │
│ NORMAL-MODUS INSERT-MODUS │
│ (Standard) (Eingabe) │
│ │
│ Befehle ausführen ←Esc── Text tippen │
│ Navigation ──i→ │
│ │
└─────────────────────────────────────────────┘
  • Normal-Modus – vim startet immer hier. Tasten sind Befehle, kein Text wird eingegeben.
  • Insert-Modus – Text wird wie gewohnt getippt. Unten im Terminal erscheint -- INSERT --.
Terminal-Fenster
vim datei.txt # Datei öffnen (wird angelegt, falls nicht vorhanden)

vim startet im Normal-Modus. Der Cursor steht am Anfang.

i vor dem Cursor in den Insert-Modus
a nach dem Cursor in den Insert-Modus (append)
o neue Zeile unterhalb öffnen und Insert-Modus

Im Insert-Modus lässt sich Text normal eintippen.

Esc immer: zurück in den Normal-Modus

Im Normal-Modus werden Befehle mit : eingeleitet. Der Befehl erscheint unten im Terminal:

BefehlBedeutung
:wSpeichern (write)
:qBeenden (quit) – nur wenn keine ungespeicherten Änderungen
:wqSpeichern und beenden
:xSpeichern und beenden (nur wenn Änderungen vorhanden)
:q!Beenden ohne Speichern (Änderungen verwerfen)

Die Pfeiltasten funktionieren – aber vim-Nutzer verwenden traditionell:

TasteBewegung
h / lZeichen links / rechts
j / kZeile runter / rauf
0 / $Zeilenanfang / Zeilenende
gg / GErste / letzte Zeile
w / bNächstes / vorheriges Wort
BefehlAktion
ddAktuelle Zeile löschen
yyAktuelle Zeile kopieren (yank)
pNach Cursor einfügen (paste)
uRückgängig (undo)
Strg+rWiederholen (redo)
/suchbegriffVorwärts suchen
n / NNächsten / vorherigen Treffer

Diese Seite zeigt das Minimum. vim kann deutlich mehr – aber das lernt man am besten interaktiv:

vimtutor – ein eingebautes interaktives Tutorial, das ca. 30 Minuten dauert und die wichtigsten Konzepte Schritt für Schritt erklärt:

Terminal-Fenster
vimtutor

Für eine kompakte Referenz: Vi Intro & Cheat Sheet – IBM Developer – gute Übersicht über die häufigsten Befehle.