- Vi
-
vi („vi“ für „visual“; ausgesprochen [viː ai] oder [vaɪ][1], im deutschen Sprachraum gelegentlich auch [viː], jedoch 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 vom Befehl visual des Editors ex. Mit diesem Befehl konnte man den Zeileneditor in einen visuellen Modus umschalten.
Inhaltsverzeichnis
Einordnung
Bis Anfang der 1970er Jahre wurden hauptsächlich zeilenorientierte Editoren benutzt, wobei ein weit verbreiteter der Editor ed war. Joy baute auf diesem auf, zunächst mit ebenfalls einem Zeileneditor, ex. Darauf baute später der seitenorientierte Editor vi auf. vi wurde schnell zum De-facto-Standardeditor unter Unix, jedenfalls bis zum Aufstieg von Emacs um etwa 1984.
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. Außerdem kann man mit diesem Editor in Kombination mit ssh (früher mit Telnet oder rsh) im Netzwerk sehr gut auf anderen Rechnern arbeiten.
Die originale Version von Bill Joy war ursprünglich weder im Quelltext noch sonst frei verfügbar, so dass sich über die Jahre eine Reihe von Klonen entwickelte, z. B. Vim, Nvi, elvis, WinVi, die auch inzwischen teilweise auf nicht Unix-artigen Systemen laufen.
Aufgrund seiner Ressourcenfreundlichkeit starten vi bzw. fast alle seiner Klone schneller und benötigen weniger Speicherplatz als Emacs. Auf einer "Rettungsdiskette" hat vi auch heute noch Platz, so dass er Bestandteil fast aller Unix-/Linux-Distributionen ist.
Arbeitsmodi
vi besitzt drei grundsätzlich unterschiedliche Arbeitsmodi. Die drei Modi sind:
- Befehlsmodus (command mode)
- Beim Start von vi befindet man sich im Befehlsmodus. Dort können durch verschiedene Tastendrücke einfache Befehle ausgeführt werden, wie z. B. „Wort suchen“, „Zeile löschen“ usw. Durch Drücken von Esc gelangt man in diesen Befehlsmodus.
- Einfügemodus (insert mode)
- Im Einfügemodus ist die eigentliche Eingabe von Text möglich. Durch Drücken von Befehlseingabebefehlen, wie „i“, „a“ oder „o“ gelangt man aus dem Befehlsmodus in diesen Einfügemodus.
- Kommandozeilenmodus (auch Komplexbefehlsmodus, colon mode oder ex mode)
- Durch Eingabe von ':' (Doppelpunkt) gelangt man vom Befehlsmodus in den Kommandozeilenmodus. Dort können komplexere Befehle ausgeführt werden, wie etwa Suchen und ersetzen von Text (:%s/alter_text/neuer_text/g).
Frühere Versionen gaben dem Benutzer keinen Anhaltspunkt, in welchem Modus er sich gerade befand, so dass es auch heute noch typisch für den vi-Benutzer ist, immer vorsichtshalber noch einmal Escape 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 zeigen ihren augenblicklichen Modus auf der Statuszeile oder grafisch an (siehe Screenshot unterste Zeile – der Modus ist „EINFÜGEN“).
| Start mit | vi <dateiname> v +--------------------+ +--------------------+ +-------------------+ | | | | | | | Kommandozeilen- | <--------- | Befehls-Modus | ---------> | Einfüge-Modus | | Modus | „:“ | | „i“, „a“, | | | | | Verwendung von: | „o“ usw. | | | z. B. „wq“, „q!“ | | yy, p, dd, J | | Normales Editie- | | oder komplexe | | usw. | | ren, Pfeiltasten | | Befehle, wie | | | | Bildscrollen usw. | | „Suchen und | [Enter] | (Der vi startet | [Esc] | | | Ersetzen“ | ---------> | in diesem Modus) | <--------- | | | | | | | | +--------------------+ +--------------------+ +-------------------+ | | | Beenden mit | Beenden mit v „wq“ oder „x“ v „ZZ“
(wenige Ausnahmen, wie z. B. das Zurückspringen des „r“-Befehls in den Befehlsmodus ohne Drücken von Escape, existieren)
Vor- und Nachteile
Aufgrund der verschiedenen Arbeitsmodi ist vi gewöhnungsbedürftig. Ein großer Vorteil von vi ist, dass mehrere Befehle nacheinander ohne gleichzeitiges Betätigen der Alt-, Strg- oder sonstiger Modifikator-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.“
„Warum verstecken wir uns vor der Polizei, Papi?« – »Weil wir vi benutzen, mein Sohn, sie benutzen emacs.“
– Unbekannter Autor (spielt auf die Flamewars zwischen vi- und Emacs-Benutzern an): [1]
„Sure vi is user-friendly; it’s just peculiar about who it makes friends with.“
„Sicher ist vi benutzerfreundlich, es ist nur eigen in der Wahl seiner Freunde“
– Unbekannter Autor
„In the middle of evil there is vi.“
„Inmitten des Bösen (Evil) ist immer vi.“
– Unbekannter Autor
„There's even a version of vi for the DOS world, although giving some poor DOS user a copy of vi is like throwing an extra pair of handcuffs on an already-shackled prisoner.“
„Es gibt auch eine vi-Version für DOS, aber einem bemitleidenswerten DOS-Benutzer vi zu geben ist, wie einem schon gefesselten Häftling ein zusätzliches Paar Handschellen anzulegen.“
– Chuck Musciano in der Zeitschrift "SunWorld" vom Oktober 1995
„Vi - It's small but smart.“
„Vi - Es ist klein, aber schlau.“
– Chris Snowwhite in der Zeitschrift "EasyLinux" nach dem Sieg des dig.biz Award Austria 2007
Quellenangaben
- ↑ Christian Gross: Open Source for Windows Administrators, S. 55, Charles River Media 2005, ISBN 1-584-50347-5
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
- Boor, Hutter, Pribas: vi-Referenzhandbuch, Prentice Hall, ISBN 3-8272-9533-5
Weblinks
vi(1)
– Linux-Manpage (Englisch)- Kurzanleitung vi Zusammenfassung der wichtigsten vi-Kommandos auf einer A4-Seite (PDF)
- The Traditional vi Quelltext des Original-vi, mit Anpassungen um auf modernen Unix-Systemen zu kompilieren
- Links zum Thema VI im Open Directory Project
- vi-Cheat-Sheet The Semi-Official IBM developerWorks vi-Cheat-Sheet (englisch)
- vi Reference Card vi Referenz-Karte (1 PDF-Seite, englisch)
- The Vi Lovers (englisch)
Wikimedia Foundation.