Neben dem Standard-vi existiert noch eine sich ständig in der Weiterentwicklung befindliche Version mit
dem Namen vim (vi-improved), die als ein Klon angesehen werden kann. Im Gegensatz zum Standard-vi
läuft der vim auf noch mehr Systemen und Plattformen. Des Weiteren ist farbiges Syntax-Highlighting
für diverse Programmiersprachen implementiert. In vielen modernen Distributionen startet der Befehl vi
direkt vim, da der vim vollständig vi-kompatibel ist und alle seine Features unterstützt.
Der gvim ist eine grafische Variante. Programme können direkt aus dem Editor heraus kompiliert
werden und einige zusätzliche Features wie etwa ein Hexeditor sind ebenfalls integriert.
Ganz neu ist Fork neovim, der die Wartung und Weiterentwicklung des Editors einfach machen soll.
vi bzw. vim wird über die Kommandozeile aufgerufen. Dabei wird optional ein zu editierender
oder neu zu erstellender Dateiname übergeben, z.B.: vim /proc/cpuinfo. Die Tilde-Zeilen stehen
für leere Zeilen. Die unterste Zeile wird als Statuszeile genutzt und gibt den Dateinamen sowie die
Zeilenzahl und die Dateigröße in Zeichen respektive Bytes an.
Im Eingabemodus wird Text eingefügt, ersetzt oder gelöscht. Im Kommandomodus lässt sich der Editor konfigurieren. Zudem werden die wichtigen Operationen wie das Abspeichern einer Datei oder das Suchen von Textstellen in diesem Modus abgewickelt.
Vom Eingabemodus wechselt man mit der ESC-Taste in den Kommandomodus. In der Statuszeile (die nun zur
Kommandozeile geworden ist) kann man den Befehl zum Beenden (:q) eingeben.
Ohne Speichern, also mit Verlust von veränderten Daten, beendet man den Editor mit der Eingabe von
:q!.
Dateien werden im Kommandomodus gespeichert. Das dafür notwendige Kommando "write" (w) schreibt die Datei
unter dem geöffneten Namen auf das Speichermedium. Allerdings kann auch ein Dateiname als Parameter
übergeben werden: :w test.txt. Zum Speichern und gleichzeitigen Beenden des Editors
kombiniert man die Befehle: :wq [Dateiname].
Nach dem Start des vi-Editors befindet man sich im Kommandomodus. Möchte man Text schreiben, muss
man zunächst in den Eingabemodus wechseln.
| Kommando | Wirkung |
|---|---|
i (insert) |
Text vor dem aktuellen Zeichen einfügen |
I |
Text am Anfang der Zeile einfügen |
a (append) |
Text hinter dem aktuellen Zeichen einfügen |
A |
Text am Ende der Zeile einfügen |
o (open) |
Text in einer neuen Zeile unterhalb der aktuellen Zeile einfügen |
O |
Text in einer neuen Zeile oberhalb der aktuellen Zeile einfügen |
Um sich im Text im Kommandomodus zu bewegen, greift man in der Regel auf die Cursortasten zurück.
An älteren Unix-Terminals standen oftmals keine Cursortasten zur Verfügung. Daher kann man auch mit
den Tasten H (links), J (runter), K (rauf) und L (rechts)
navigieren.
Außerdem existieren folgende weitere Navigationsmöglichkeiten:
| Kommando | Wirkung |
|---|---|
$ |
zum Ende der aktuellen Zeile |
^ und 0 |
zum Anfang der aktuellen Zeile |
w |
ein Wort vorwärts |
b |
ein Wort rückwärts |
STRG + F |
eine Seite vorwärts blättern (geht manchmal auch mit der Bild runter-Taste |
STRG + B |
eine Seite rückwärts blättern (geht manchmal auch mit der Bild rauf-Taste | G |
zur letzten Zeile der Datei bewegen |
f[n] |
zum nächsten Vorkommen des Zeichens n in der aktuellen Zeile bewegen (Achtung:
case-sensitive) |
:[n] und [n]G |
zur Zeile n bewegen; eignet sich gut, um Kompilierfehlern im Quellcode nachzugehen |
Ein Löschvorgang muss - wie immer - über den Kommandomodus mit entsprechenden Anweisungen bewerkstelligt werden.
| Kommando | Wirkung |
|---|---|
dw |
löscht das aktuelle Wort |