Vim-Spickzettel

  • Fast alle Kommandos können mehrfach angewandt werden, indem du vorher oder zwischendrin eine Zahl eintippst.
  • In ~/.vimrc stehen die Starteinstellungen (irgendwo gibt es auch eine vimrc_example).
  • Nei der Auswahl von Kommandos und Dateinamen funktioniert auch die glorreiche bash-Tab-Vervollständigung.
  • Eine gute Art Vim zu lernen ist ein VimVenture.

Umgang mit Dateien

Eingabe Bedeutung
w speichern
w HALLO einmalig in Datei HALLO speichern
saveas HALLO ab jetzt immer in HALLO
X,Y w [HALLO] alles zwischen Zeile X und Y speichern
wq speichern und beenden
x speichern und beenden
r HALLO fuege den Inhalt der Datei HALLO vor dem Cursor ein

Ein angehaengtes ! umgeht eventuelle Bestätigungsfragen.

In den Editier-Modus wechseln

Eingabe Bedeutung
i vor dem Cursor einfügen
I am Zeilenbeginn einfügen
a nach dem Cursor einfügen
A nach dem Zeilenende einfügen
o eine neue Zeile vor der aktuellen einfügen
O eine neue Zeile nach der aktuellen einfügen
R ab dem Cursor ersetzen (also Überschreib-Modus)
ESC zurück in den Kommando-Modus

Bewegung

Eigabe Bedeutung
h/j/k/l links/unten/oben/rechts (effizienter als Cursor)
w/e an Anfang/Ende des naechsten Wortes springen
^/$ Anfang/Ende der Zeile (wie bei regulären Ausdrücken!)
XX Shift-G zur gewünschten Zeilennummer XX gehen (nix → letzte Zeile)
STRG-G aktuelle Position in der Datei anzeigen
XX% springt zur prozentualen Position
XX: springt zur Zeile XX
ma setzt eine Marke namens „a“
'a springt zur Marke „a“
marks zeigt alle Marken an
marks X zeigt Informationen zur Marke X an
STRG-O springt zu einer „älteren“ (?) Postion
STRG-I springt zu einer „neueren“ (?) Position

Marken mit Grossbuchstaben funktionieren auch über mehrere offene Dateien hinweg.

Suchen

Eingabe Bedeutung
/ dann Suchtext eingeben (auch reguläre Ausdrücke)
? dasselbe, nur rückwaerts
n nächstes Auftreten suchen
N vorheriges Auftreten suchen
% zugehoerige Klammer, also „([{“), suchen (gut für Verschachtelungen beim Programmieren)

Folgende Optionen sind möglich:

Eingabe Bedeutung
set ic ignore case
set is inkrementelle Suche
set hls highlight search

Loeschen

M d? - das Fragezeichen kann dabei Folgendes sein:

Eingabe Bedeutung
w Wort bis zum nächsten Wortanfang (mit Leerzeichen)
e Wort bis zum Wortende (also ohne Leerzeichen)
^/$ bis zum Zeilenanfang/-ende

Ersetzungen

Eingabe Bedeutung
rX ersetzt das Zeichen unter dem Cursor durch „X“
cw löscht das Wort unter dem Cursor und wechselt in Einfügemodus
c$ löscht das Ende der Zeile und wechselt in Einfügemodus
c^ löscht den Anfang der Zeile und wechselt in den Einfügemodus
s/A/B ersetzt ein A durch ein B in der aktuellen Zeile (sed-Syntax)
s/A/B/g dito, alle Vorkommen in der aktuellen Zeile
X,Ys/A/B von Zeile X bis Y jeweils ein A durch ein B ersetzen
%s/A/B in allen Zeilen ein A durch ein B ersetzen

Bemerkungen:

  • $ steht fuer die letzte Zeile
  • das angehängte /g kann immer verwendet werden
  • ein angehängtes c bzw. /c fragt jedesmal nach
  • ein / im Text muss durch \/ geschützt werden
  • reguläre Ausdrücke sind erlaubt

Rückgängig machen

Eingabe Bedeutung
u letzte Aktion
U letzte Zeile wiederherstellen
STRG-R rückgängig Gemachtes wiederherstellen

Kopieren und Einfügen

Eingabe Bedeutung
p fügt das zuletzt gelöschte/kopierte Objekt nach dem Cursor ein
P dito, vor dem Cursor
y eine Zeile in Zwischenspeicher kopieren

meherere Dateien

Eingabe Bedeutung
e DATEI öffnet eine Datei und schiebt die aktuelle in den Hintergrund
e #X die Xste Datei wieder hervorholen
files alle geöffneten Dateien auflisten
hide DATEI schiebt die aktuelle Datei - ohne zu speichern - in den Hintergrund und öffnet DATEI
n wechselt zur nächsten, die Aktuelle wird geschlossen
wn speichert vorher die Aktuelle
prev zur Vorherigen
args: zeigt welche Datei gerade aktuell ist
first wechselt zur Ersten
last zur Letzen

Bemerkungen:

Eingabe Bedeutung
set autowrite speichert die Aktuelle ohne nachzufragen
2n oder 4prev springt über Dateien hinweg
STRG-^ springt zur vorher editierten Datei

Split-Screen

Eingabe Bedeutung
split teilt den Bildschirm
STRG-w STRG-w springt zum nächsten Fenster
close schliesst das aktuelle Fenster
only schliesst alle ausser dem Aktuellen
new öffnet ein neues Fenster leer
split HALLO öffnet HALLO in neuem Fenster
STRG-w +/- vergrössert/verkleinert das aktuelle Fenster
vsplit vertikales Splitting
wall/qall speichert/schliesst alle

Beim Aufruf von vim öffnet der Parameter -o alle Dateien in Fenstern.

Sonstiges

Eingabe Bedeutung
»/« Ein-/Ausrücken (?), (mit Zahl: mehrere Zeilen)
!KOMMANDO führt das externe Kommando aus
r !KOMMANDO dito & schreibt den Output an die aktuelle Position
set XXX setzt die jeweilige Option
set noXXX Option ausschalten
set all setzt alle Optionen auf default

Hilfe

Eingabe Bedeutung
help Meta-Hilfe (hilfreich, um die Hilfe nutzen zu können)
help THEMA die Hilfe - mit :q verlassen
help user-manual hier steht wirklich alles
help EXX die Hilfe für Fehlernummer XX

Bewegungen

Eingabe Bedeutung
STRG-] folgt einem Verweis
STRG-T/O zurück springen