25.5. Der Editor vi

Die Bedienung des vi ist etwas gewöhnungsbedürftig. Er wird an dieser Stelle anderen Editoren vorgezogen, weil er zum einen auf jedem UNIX-ähnlichen Betriebssystem zur Verfügung steht und bei Linux zum standardmäßigen Installationsumfang gehört; zum anderen, weil seine Bedienung eindeutig ist und dadurch in der Regel keine Missverständnisse auftreten. Außerdem: wenn nichts geht, geht vi immer noch. Die nun folgende Kurzanleitung sollte Sie in die Lage versetzen, mit Hilfe des vi zum Beispiel diverse Konfigurationsdateien zu editieren.

Der vi kennt drei Betriebsarten (Modi): Im Befehlsmodus (engl. command mode) wird jeder Tastendruck als Teil eines Befehls interpretiert. Im Einfügemodus (engl. insert mode) werden Tastatureingaben als Text interpretiert. Im Komplexbefehlsmodus (engl. last line mode) geben Sie komplexere Befehle in der letzten Zeile ein.

Die wichtigsten Befehle des Befehlsmodus sind:

Tabelle 25.1. Einfache Befehle des Editors vi

ESCwechselt in den komplexen Befehlsmodus.
iwechselt in den Eingabemodus (Zeichen werden an der aktuellen Cursorposition eingegeben).
awechselt in den Eingabemodus (Zeichen werden nach der aktuellen Cursorposition eingegeben).
Awechselt in den Eingabemodus (Zeichen werden am Ende der Zeile angehängt).
Rwechselt in den Eingabemodus (überschreibt den alten Text).
rwechselt zum Überschreiben eines einzelnen Zeichens in den Eingabemodus.
swechselt in den Eingabemodus (das Zeichen, auf dem der Cursor steht, wird durch die Eingabe überschrieben).
Cwechselt in den Eingabemodus (der Rest der Zeile wird durch den neuen Text ersetzt).
owechselt in den Eingabemodus (nach der aktuellen Zeile wird eine neue Zeile eingefügt).
Owechselt in den Eingabemodus (vor der aktuellen Zeile wird eine neue Zeile eingefügt).
xlöscht das aktuelle Zeichen.
ddlöscht die aktuelle Zeile.
dwlöscht bis zum Ende des aktuellen Worts.
cwwechselt in den Eingabemodus (der Rest des aktuellen Worts wird durch die Eingabe überschrieben).
unimmt den letzten Befehl zurück.
Jhängt die folgende Zeile an die aktuelle an.
.wiederholt den letzten Befehl.
:wechselt in den Komplexbefehlsmodus.

Allen Befehlen kann eine Zahl vorangestellt werden, die angibt, auf wie viele Objekte sich der folgende Befehl beziehen soll. So können durch Eingabe von 3dw drei Wörter auf einmal gelöscht werden. Durch Eingabe von 10x erreicht man das Löschen von zehn Zeichen ab der Cursorposition, 20dd löscht 20 Zeilen.

Die wichtigsten Befehle des Komplexbefehlsmodus:

Tabelle 25.2. Komplexe Befehle des Editors vi

:q!verlässt vi, ohne Änderungen zu speichern
:wdateinamespeichert unter dateiname
:xspeichert die geänderte Datei und verlässt den Editor
:edateinameeditiert (lädt) dateiname
:unimmt den letzten Editierbefehl zurück