27.4. Der vi-Editor

Texteditoren werden nach wie vor für viele Systemverwaltungsaufgaben und zur Programmierung verwendet. Im Unix-Bereich bietet der Editor vi komfortable Bearbeitungsfunktionen und ist praktischer in der Handhabung als viele Editoren mit Mausunterstützung.

27.4.1. Betriebsmodi

In vi werden drei grundlegende Betriebsmodi verwendet: Einfügemodus, Befehlsmodus und Erweiterter Modus. Je nachdem, in welchem Modus Sie arbeiten, haben die Tasten unterschiedliche Funktionen. Beim Systemstart wird vi in der Regel in den Befehlsmodus versetzt. Zuerst müssen Sie lernen, wie man zwischen den Modi umschaltet:

Befehlsmodus in Einfügemodus

Hierfür stehen mehrere Möglichkeiten zur Verfügung, darunter A für Anfügen, I für Einfügen oder O für eine neue Zeile unterhalb der aktuellen Zeile.

Einfügemodus in Befehlsmodus

Drücken Sie Esc, um den Einfügemodus zu verlassen. vi kann im Einfügemodus nicht beendet werden, sodass Sie sich mit der Verwendung der Taste Esc vertraut machen sollten.

Befehlsmodus in erweiterten Modus

Der erweiterte Modus von vi kann durch Eingabe eines Doppelpunkts (:) aktiviert werden. Der erweiterte oder ex-Modus ähnelt einem unabhängigen zeilenorientierten Editor, der für verschiedene einfache und komplexere Aufgaben eingesetzt werden kann.

Erweiterter Modus in Befehlsmodus

Nach der Ausführung eines Befehls im erweiterten Modus kehrt der Editor automatisch in den Befehlsmodus zurück. Wenn Sie keinen Befehl im erweiterten Modus ausführen möchten, löschen Sie den Doppelpunkt mit . Der Editor kehrt in den Befehlsmodus zurück.

Es ist nicht möglich, direkt vom Einfügemodus in den erweiterten Modus umzuschalten, ohne vorher in den Befehlsmodus gewechselt zu haben.

Wie andere Editoren verfügt auch vi über ein eigenes Verfahren zum Beenden des Programms. vi kann im Einfügemodus nicht beendet werden. Verlassen Sie zuerst den Einfügemodus mit Esc. Anschließend haben Sie zwei Möglichkeiten:

  1. Beenden ohne Speichern: Wenn Sie den Editor beenden möchten, ohne die Änderungen zu speichern, geben Sie im Befehlsmodus : Q ! ein. Durch das Ausrufezeichen (!) ignoriert vi alle Änderungen.

  2. Speichern und Beenden: Es gibt mehrere Möglichkeiten, die Änderungen zu speichern und den Editor zu beenden. Verwenden Sie im Befehlsmodus -Z-Z. Zum Beenden des Programms und zum Speichern aller Änderungen im erweiterten Modus geben Sie : W Q ein. Im erweiterten Modus steht w für Anweisung und q für Beenden.

27.4.2. vi in Aktion

vi kann als normaler Editor verwendet werden. Im Einfügemodus können Sie Text eingeben und über die Tasten und löschen. Bewegen Sie den Cursor mithilfe der Pfeiltasten.

Diese Steuertasten verursachen jedoch häufig Probleme, da auf vielen Terminaltypen spezielle Tastenkombinationen verwendet werden. An dieser Stelle wird der Befehlsmodus relevant. Drücken Sie Esc, um vom Einfüge- in den Befehlsmodus zu wechseln. Im Befehlsmodus verschieben Sie den Cursor mit H, J, K und L. Mit den Tasten werden folgende Funktionen ausgeführt:

H

ein Zeichen nach links

J

eine Zeile nach unten

K

eine Zeile nach oben

L

ein Zeichen nach rechts

Die Befehle im Befehlsmodus können auf verschiedene Arten variiert werden. Wenn Sie einen Befehl mehrfach ausführen möchten, geben Sie einfach die Anzahl der Wiederholungen ein, bevor Sie den tatsächlichen Befehl eingeben. Geben Sie beispielsweise 5 L ein, um den Cursor um fünf Zeichen nach rechts zu verschieben.

Eine Auswahl wichtiger Befehle wird in Tabelle 27.1, „Einfache Befehle im vi-Editor“ aufgeführt. Diese Liste ist nicht vollständig. Umfangreichere Listen finden Sie in der Dokumentation in Abschnitt 27.4.3, „Weitere Informationen“.

Tabelle 27.1. Einfache Befehle im vi-Editor

Esc

In den Befehlsmodus wechseln

I

In den Einfügemodus wechseln (die Zeichen werden an der aktuellen Cursorposition angezeigt)

A

In den Einfügemodus wechseln (die Zeichen werden hinter der aktuellen Cursorposition angezeigt)

-A

In den Einfügemodus wechseln (die Zeichen werden am Ende der Zeile hinzugefügt)

-R

In den Ersetzungsmodus wechseln (alter Text wird überschrieben)

R

Das Zeichen unter dem Cursor ersetzen

O

In den Einfügemodus wechseln (unterhalb der aktuellen Zeile wird eine neue Zeile eingefügt)

-O

In den Einfügemodus wechseln (oberhalb der aktuellen Zeile wird eine neue Zeile eingefügt)

X

Aktuelles Zeichen löschen

D D

Aktuelle Zeile löschen

D W

Zeichen bis zum Ende des aktuellen Worts löschen

C W

In den Einfügemodus wechseln (der Rest des aktuellen Worts wird mit den nächsten Einträgen überschrieben)

U

Letzten Befehl rückgängig machen

Strg-R

Rückgängig gemachte Änderung erneut ausführen

-J

Folgende Zeile an die aktuelle Zeile anfügen

.

Letzten Befehl wiederholen

27.4.3. Weitere Informationen

vi unterstützt viele verschiedene Befehle. Es ermöglicht die Verwendung von Makros, Schnellverfahren, benannten Puffern und viele andere nützliche Funktionen. Eine detaillierte Beschreibung der verschiedenen Optionen ist nicht Bestandteil dieses Handbuchs. Im Lieferumfang von SUSE Linux ist vim (vi improved), eine verbesserte Version von vi, enthalten. Für diese Anwendungen stehen zahlreiche Informationsquellen zur Verfügung:

[Important]VIM-Lizenz

Bei vim handelt es sich um "Charityware". Dies bedeutet, dass die Autoren keine Gebühren für die Software erheben, sondern Sie auffordern, ein gemeinnütziges Projekt mit einem finanziellen Beitrag zu unterstützen. Bei diesem Projekt wird um Hilfe für Kinder in Uganda gebeten. Weitere Informationen hierzu erhalten Sie online unter http://iccf-holland.org/index.html, http://www.vim.org/iccf/ und http://www.iccf.nl/.