Installation
Standardmäßig ist VIM schon auf dem Mac installiert. Allerdings nicht die neuste Version. Das lässt sich aber schnell ändern:
brew install vim --with-override-system-vi
Brew ist ein Paketmanager für MacOS, den man nachinstallieren muss, weil Apple ihn nich von Haus aus mitliefert. Hier findest Du alles, was Du dazu brauchst.
Bewegen des Cursors
h
: linksj
: untenk
: obenl
: rechts
VIM beenden
-
Ohne Änderungen zu speichern
<ESC>
drücken (um sicherzustellen, dass Du im Kommando-Modus bist):q!
Verwirft alle Änderungen und beendet VIM
-
Änderungen speichern
- Der schnellste Weg führt über die Tastenkombination
ZZ
- Alternativ funktioniert auch :wq
- Der schnellste Weg führt über die Tastenkombination
Hilfe
Tippe nach dem/den ersten Buchstaben eines Befehls STRG-D
und Dir werden alle mit diesem Buchstaben möglichen Befehle angezeigt
Text editieren
Löschen
Einzelne Zeichen löschen
<ESC>
drücken (um sicherzustellen, dass Du im Kommando-Modus bist)x
drücken, damit das Zeichen unter dem Cursor gelöscht wird
Ganze Worte löschen
- Bewege den Cursor an den Anfang des zu löschenden Wortes
- Tippe
dw
um das Wort zu löschen
Bis zum Ende der Zeile löschen
- Bewege den Cursor an die Stelle, ab der der Rest der Zeile gelöscht werden soll
- Tippe `d$
Einfügen
- Den Cursor zu dem Zeichen nach der Stelle, an die etwas eingefügt werden soll, navigieren
- Mit
i
in den Editier-Modus wechseln - Den einzufügenden Text eingeben
- Mit
<ESC>
wieder in den Normal-Modus wechseln
Anfügen
- Den Cursor in die Zeile bewegen, in die Du etwas anfügen möchtest
A
drücken (der Cursor springt jetzt ans Ende der Zeile)- à` lässt den Cursor ans Ende des Wortes springen
- Text eingeben
- Mit
<ESC>
wieder in den Normal-Modus wechseln
Zeile öffnen
Um die die Zeile unterhalb des Cursors zu öffnen und direkt Text dort hineinschreiben zu können, verwende den Operator o
. Er fügt unterhalb des Cursors eine Zeile ein und schaltet VIM in den Editier-Modus.
Soll das Ganze oberhalb des Cursors passieren, verwende einfach das große O
.
Einlesen von Text
Mit dem Kommando :r [Dateiname]
kannst Du den Inhalt einer Datei an die Cursorposition einfügen.
Alternativ kannst Du auch die Ausgabe eines externen Befehls in Deine Datei einfügen:
:r !ls
fügt z.B. die Liste der Dateien und Ordner des aktuellen Verzeichnisses in Deinen Text ein.
Copy & Paste
Eine mit dd
gelöschte Zeile wird im VIM-Register gespeichert und kann mit p
wieder eingefügt werden.
Ausserdem kannst Du hier den visuellen Modus (v
) dazu verwenden, um Text zu markieren, ihn mit y
zu kopieren und an anderer Stelle wieder mit p
einzufügen.
Alternativ kannst Du auch mit yw
das Wort unter dem Cursor kopieren
Ändern
ce
löscht den Rest des Wortes ab dem Cursor und wartet auf die Eingabe der neuen Zeichen. Ansonsten arbeitet das Change-Kommando mit den gleichen Bewegungen wir delete: c
[Anzahl] Bewegungsschritt`
Ersetzen
Hierzu wird VIM durch ein rx
mitgeteilt, dass das Zeichen unter dem Cursor durch ein x ersetzt werden soll. Mit R
wechselst Du in den Ersetzungsmodus, mit dem Du so lange Zeichen überschreibst, bis Du den Modus über <ESC>
wieder verlässt.
Erweitertes Ersetzen
Neben dem weiter oben erwähnten Kommando zum Ersetzen git es noch eine, die deutlich mehr Möglichkeiten bietet.
:s/alt/neu/g
ersetzt alt durch neu. Durch das /g
findet die Ersetzung im ganzen Dokument statt.
:11,12s/alt/neu/g
ersetzt in den Zeilen 11 und zwölf alle Vorkommen von alt durch neu
Schreibt man ganz ans Ende noch ein c, wird ein Fragedialog angezeigt.
Optionen
Mit einer Option kannst Du z.B. eine Suche so konfigurieren, dass sie nicht zwischen Gross- und Kleinschreibung unterscheidet:
:set xxx
wobei xxx folgende Werte annehmen kann:
ic
: ignore caseis
: incsearch (zeigt Teilübereinstimmungen)hls
: hlsearch (hebt passende Ausdrücke hervor)
Mit einem no
vor dem entsprechenden Ausdruck kannst Du die Option wieder abschalten.
Undo
- Mit jedem Drücken von
u
wird wird ein Schritt rückgängig gemacht. CTRL + R
macht das letzte Undo wieder rückgängigU
: stellt eine ganze Zeile wieder her
Datei speichern
Du kannst entweder den ganzen Text in eine Datei speichern:
:w [Dateiname]
oder nur einen Teil des Textes in einer neuen Datei speichern: Dazu markierst Du zunächst den auszuwählenden Text mit v Bewegung
Im nächsten Schritt tippst Du :
. Jetzt wird in der Fußzeile :'<,'>
angezeigt. Tippe jetzt w [Dateiname] und drücke
Enter`.
Mit dem Operator v
aktivierst Du die visuelle Auswahl, die sich mit dem Cursor vergrößern lässt. Anschließend lässt sich ein Operator auf diesen markierten Text anwenden. Du kannst ihn z.B. mir d
löschen.
Operatoren und Bewegungszüge
Operator [Anzahl] Bewegungsschritt
Einige Operatoren hast Du ja schon kennengelernt, wie z.B.
x
d
Diese lassen sich mit Bewegungen kombinieren:
w
bis zum Beginn des nächsten Wortes, ohne dessen erstes Zeichene
zum Ende des aktuellen Wortes mit dessen letztem Zeichen$
zum Ende der Zeite mit dem letzten Zeichen
Benutzt Du die Bewegung ohne einen Operator, bewegt sich einfach der Cursor an die entsprechende Stelle.
Zähler für Bewegungen
Zähler werden vor den Bewegungsschritt geschrieben. Also z.B.:
2w
: setzt den Cursor zwei Wörter weiter3e
: bewegt den Cursor ans Ende des 3 Wortes0
: Anfang der Zeile
Zähler für Operationen
Die Eingabe einer Zahl mit einem Operator wiederholt diesen mehrfach.
d2w
: löscht zwei Worte
Arbeiten auf Zeilen
dd
: löscht eine ganze Zeile (und speichert sie im VIM-Register, um sie z.B. an anderer Stelle wieder einzufügen)2dd
: löscht 2 Zeilen
Cursorposition
Um Dir die aktuelle Position in der geöffneten Datei anzuzeigen tippe <STRG>-G
Willst Du eine spezielle Zeile im Dokument ansteuern tippe [Zeilennummer] G
Suchen
Text finden
Du kannst durch die Wahl des Operators vorwärts oder rückwärts nach einem Ausdruck suchen:
/[Such-Ausdruck]
sucht vorwärts nach dem angegebenen Ausdruck?[Such-Ausdruck]
sucht rückwärts nach dem angegebenen Ausdruck
Um zum nächsten Vorkommen des Ausdrucks zu gelangen tippe n
.
Passende Klammern finden
Um eine gegenüberliegende Klammer zu finden musst Du den Cursor auf einer Klammer positionieren und dann %
tippen.
Externe Kommandos ausführen
Manchmal ist es hilfreich oder notwendig, direkt aus dem Editor heraus ein externes Kommando abzusetzen. Das wird in VIM mit der Zeichenfolge
:![externer Befehl]
erledigt. Zum Abschließen des externen Befehls muss Enter
gedrückt werden, um wieder zu VIM zurückzukehren.
Kurzform der Befehle
Hier findest Du die Übersicht nochmal als eigenen Artikel.
Bewegen
j,k,l,h
: Bewegen des Cursors2w
: 2 Worte vorwärts0
: an den Anfang der Zeile springen$
: ans Ende der Zeile springenG
: Sprung zum Ende der Dateigg
: Sprung zum Anfang der Datei[Zeilennummern]G
: Sprung zur angegebenen Zeilee
: Sprung ans Ende eines Wortes
Speichern
:q!
: VIM beenden (und die Änderungen verwerfen):wq
: Änderungen speichern und VIM verlassen<ESC
: in den Normal-Modus wechselnx
: das Zeichen unter dem Cursor löschen
Suchen
/[Such-Ausdruck]
: Suche vorwärts?[Such-Ausdruck]
: Suche rückwärtsn
: nächsten Vorkommen des Suchausdrucks%
: zeigt die korrespondierende Klammer an- :s/alt/neu
- :set ic
Copy/Paste
v
: Visuellen Modus einschalteny
: markierten Text kopierenyw
: ein Wort kopierenp
: kopierten Text einfügen
Einfügen/Anfügen
i
: Text einfügenA
: Text anfügenp
: fügt Zeichen aus dem Speicher einrx
: ersetzt das Zeichen unter dem Cursor durch einx
:s/alt/neu/g
: ersetzt alt durch neu
Löschen
dw
: ein Wort löschend$
: bis zum Ende der Zeile löschendd
: ganze Zeile löschen
Undo
u
: vorherige Aktion rückgängig machenU
: alle Änderungen einer Zeile rückgängig machenSTRG-R
: Undo rückgängig machen