Logo Wissenstransfer Gerhard at CichnaDotCom

>> Wissensdatenbank / Linux

Der vi(m)-Editor

Der vi(m)-Editor

vi, vim, gvim und neovim

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.

Erste Schritte

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.

Kommando- und Eingabemodus

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.

Editor beenden

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 speichern

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].

Arbeiten mit dem Eingabemodus

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

Navigation

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

Löschen von Textstellen

Ein Löschvorgang muss - wie immer - über den Kommandomodus mit entsprechenden Anweisungen bewerkstelligt werden.

Kommando Wirkung
dw löscht das aktuelle Wort