Vi
Vi ("vi" für "visual"; ausgesprochen [ vi: ai ], aber nicht [ vi: ] und auch nicht "sechs" oder "six" wie die römische Zahl VI) ist ein 1976 von Bill Joy für eine frühe BSD-Version geschriebener und von POSIX standardisierter Texteditor. Der Name stammt von "Visual Interface", weil sein Vorgänger ex ein einfacher Zeileneditor war.
Vi wurde schnell zum De-Facto-Standardeditor unter Unix (auch für Hacker), jedenfalls bis zum Aufstieg von Emacs um etwa 1984. Aufgrund seiner Schlankheit startet er schneller und benötigt weniger Speicherplatz als Emacs. Sogar auf einer Rettungsdiskette hat Vi auch heute noch Platz, so dass entweder Vi selbst oder einer seiner Klone (Vim, Nvi, elvis, ...) Bestandteil fast aller Unix-/Linux-Distributionen ist.
1991 benutzten ungefähr die Hälfte aller Teilnehmer einer Usenet-Umfrage den Vi. Auch heutzutage ist Vi zumindest in der Unixwelt noch sehr verbreitet, selbst Emacs-Benutzer greifen ab und zu auf ihn zurück, wenn es mal schnell gehen soll. Außerdem kann man mit diesem Editor in Kombination mit rsh oder ssh (früher mit Telnet) im Netzwerk sehr gut auf anderen Rechnern arbeiten.
Vi-Arbeitsmodi
Neueinsteiger brauchen für Vi eine hohe Frustrationstoleranz, da es sich um einen Editor mit drei grundsätzlich unterschiedlichen Arbeitsmodi handelt. Dabei ist es ganz einfach, wenn man erst einmal die Arbeitsweise der einzelnen Modi verstanden hat und weiss, wie man von einem in den anderen Modus wechselt (siehe Graphik unten). Die drei Modi sind:
- Befehls-Modus (Command-Mode)
- Beim Start von Vi befindet man sich im Befehls-Modus. Dort können durch verschiedene Tastendrücke einfache Befehle ausgeführt, wie z.B. "Wort suchen", "Zeile löschen" usw. Durch drücken von [i] gelangt man in den Einfüge-Modus.
- Einfüge-Modus (Insert-Mode)
- Im Einfüge-Modus ist die eigentliche Eingabe von Text möglich. Durch drücken von ESC gelangt man wieder in den Befehls-Modus zurück.
- Kommandozeilen-Modus (auch Komplexbefehls, Colon-Mode oder ex-Mode)
- Durch Eingabe von ':' gelangt man vom Befehls-Modus in Kommandozeilen-Modus. Dort können komplexere Befehle ausgeführt werden, wie etwa Suchen und ersetzen von Text (:s/alter_text/neuer_text/g).
Frühe Versionen gaben dem Benutzer kein Indiz, in welchem Modus er sich gerade befand, so dass es auch heute noch typisch für den Vi-Benutzer ist, immer vorsichtshalber noch einmal [ESC] zu drücken, um ganz sicher zu gehen, dass er sich wirklich im Befehlsmodus befindet (falls das vorher schon der Fall war, wird Vi einfach nur piepsen). Aktuelle Versionen von Vi deuten ihren augenblicklichen Modus auf der Statuszeile oder graphisch an (siehe Screenshot unterste Zeile - der Modus ist "EINFÜGEN").
+-------------------+ | | Start mit: | | v vi dateiname | +-------------------+--------------+-------------------+--------------+-------------------+ | | | | | | | Kommandozeilen- | <--------- | Befehls-Modus | ---------> | Einfüge-Modus | | Modus | ":" | | [i], [a], | | | | | Verwendung von: | [o] usw. | | | | | yy, p, dd, J | | Normales Editie- | | z.B. "wq", "q!" | | usw. | | ren, Pfeiltasten | | oder komplexe | | | | Bildscrollen usw. | | Befehle, wie | [ENTER] | (Der Vi startet | [ESC] | | | Suchen & Ersetzen | ---------> | in diesem Modus) | <--------- | | | | | | | | +-------------------+--------------+-------------------+--------------+-------------------+ | | Beenden mit | | v ":wq" od. "ZZ" | +-------------------+
Vorteile
Ein großer Vorteil von Vi ist, dass mehrere Befehle nacheinander ohne gleichzeitiges Betätigen der Alt-, Strg- oder sonstiger Modifier-Tasten abgesetzt werden können. Für den geübten Benutzer bedeutet das eine erhebliche Steigerung der Arbeitsgeschwindigkeit. So löscht zum Beispiel 3dw
gleich drei Wörter auf einmal.
Zitate
- "Why are we hiding from the police, daddy?" - "Because we use Vi son, they use emacs." - Unbekannter Autor (spielt auf die Flamewars zwischen Vi- und Emacs-Benutzern an)
Literatur
- Morris I. Bolsky: UNIX Text-Editor - Das vi-Handbuch, Carl Hanser & Prentice-Hall International, 1988, ISBN 3-446-15128-1
- Arnold Robbins: vi-Editor kurz & gut, O'Reilly Verlag, ISBN 3-89721-213-7
Weblinks
- Vim - "Vi IMproved", ein deutlich leistungsfähigerer und benutzerfreundlicherer Vi-Klon
- BVI - ein Editor für binäre Dateien, der mit den üblichen Vi-Kommandos zu bedienen ist
- Kurzanleitung vi - Zusammenfassung der wichtigsten vi-Kommandos auf einer A4-Seite
- Vi-Cheat-Sheet The Semi-Official IBM developerWorks Vi-Cheat-Sheet (englisch)
- The Traditional Vi Source Code des original vi's, mit Anpassungen um auf modernen Unix-Systemen zu kompilieren