vi
vi ist ein Display-orientierter
Editor, der auf dem Zeilen-Editor ex
aufbaut. Er ist der traditionelle UNIX-Editor und
ist quasi als Standard zu betrachten; daher sollte jeder
UNIX-Benutzer wenigstens die grundlegensten Kommandos kennen.
Man startet ihn mit vi filename. Die Manuals zum
vi sind auf den verschiedenen Rechnern von stark unterschiedlicher
Qualität. Am umfassendsten sind sie wohl auf den SGI Maschinen.
Da der vi auf einem zeilenorientierten Editor aufbaut, sind
alle Kommandos noch irgendwie zeilenorientiert, d.h. man
sieht zwar immer eine Seite Text, kann aber nur in der
aktuellen Zeile (die, in der der Cursor ist) Änderungen vornehmen.
Wenn man einen Zeilenumbruch einfügt, kommt man mit Backspace nicht mehr
in die vorherige zurück, da diese nicht mehr zur aktuellen gehört.
Die Modi
Das verwirrendste für den Anfänger sind wahrscheinlich die
zwei verschiedenen Modi. Wenn man das Programm startet,
befindet man sich im Kommando-Modus. Jetzt kann man all die
unten gelisteten ein-buchstabigen Kommandos und die ":" -
Befehle eingeben. Sobald man ein : tippt springt der Cursor in die
unterste Zeile am Bildschirm und man kann eine Kommandozeile eintippen.
Dies benutzt man für alle Kommandos die Parameter benötigen (wie z.B.
Suche oder das Laden einer Datei). Dieser Modus ist jedoch ungeeignet, um
mehr als ein neues Zeichen in den Text einzufügen. Dazu
gibt es den Einfüge-Modus. Man wechselt in ihn z.B. durch
eines der Kommandos i s o. Dann werden alle Zeichen, die
man tippt, in den Text eingefügt. Man verläßt ihn durch
Drücken der ESC-Taste.
Die wichtigsten Kommandos
Kommandos, die mit : beginnen, müssen mit RETURN abgeschlossen werden.
Um diese Kommandos einzugeben muß man evtl. erst die ESC-Taste drücken
um den Eingabemodus zu verlassen.
i Beliebigen Text ab Cursorposition einfügen
x Zeichen unter dem Cursor löschen
dd Aktülle Zeile löschen
u Letzte Veränderung rückgängig machen
p Daten aus Puffer an Cursorposition einfügen
o Neue Zeile unter der aktuellen einfügen
ZZ Text in Datei schreiben und Editor verlassen
hjkl Cursor links/runter/hoch/rechts bewegen
:q Editor verlassen
:q! Editor verlassen ohne den Text zu speichern
:w Text in Datei schreiben
Vor jedes dieser Kommandos ohne : kann man eine Zahl setzen um sie
mehrfach auszuführen (z.B. 5x löscht 5 Zeichen).
Die Kargheit der Bedienung sollte nicht darüber hinwegtäuschen, daß
der vi ein sehr mächtiger Editor ist, jedenfalls besser als die
meisten X-clients
(außer natürlich emacs).
Das Problem ist nur, daß man die Kommandokürzel ersteinmal lernen muß.
Genaueres in den manpage auf SGI
und manpage auf HP bzw.
in der Literatur (siehe auch unten).
Startup und Konfiguration
Man kann das Verhalten des Editors konfigurieren über Kommandozeilenparameter
(werden erklärt im Manual von ex
oder Settings. Für
letztere gibt es das Kommando :set und mit :set all
erhält man eine Liste aller möglichen Optionen und deren aktuellen Wert.
Fast jede Option ist ein toggle, d.h. man kann damit ein bestimmtes
Verhalten Ein- oder Abschalten. Man schaltet es aus durch Vorsetzen der
Buchstaben no und ein durch weglassen derselben. Die anderen
Optionen enthalten einen Wert, der wie im Besispiel gezeigt gesetzt wird.
Beispiel: Abschalten der Zeilennumerierung und setzen des Tabulator-Abstands
auf 2 Zeichen:
:set nonu ts=2
Um den vi dauerhaft bei jedem Startup zu konfigurieren gibt
es mehrere Möglichkeiten:
- EXINIT-Shell-Variable
- Ist diese Variable gesetzt, wird der enthaltene String bei jedem
Start des vi als Kommandozeile interpretiert (wie wenn man : tippen
würde und den Inhalt von EXINIT dann eingibt). Beispiel:
setenv EXINIT "set aw nonu ai sm ts=8 sw=8"
- .exrc
- Falls keine EXINIT Variable definiert ist führt vi
alle in ~/.exrc enthaltenen Kommandos aus. Falls jedoch eine
Datei namens .exrc im aktuellen Verzeichnis ist, und sie einem
selber gehört, wird diese benutzt.
Aufsetzen nach Absturz
Wenn der Editor einmal unvorhergesehen gestoppt wurde (z.B.
durch Systemabsturz oder
kill-Signal), kann man den zuvor
editierten Text wieder zurückholen. Dazu ruft man den vi
mit der Option -r auf. Man wird vom Verlorengehen der Datei
außerdem per email
automatisch benachrichtigt. Dort wird auch das Vorgehen genau erklärt.
- Siehe auch:
- ex manpage auf SGI
und ex manpage auf HP
- vi manpage auf SGI
und vi manpage auf HP
- Einführung in den vim, deckt auch alle
vi-Kommandos ab
-
vi - Befehlsübersicht mit den wichtigsten Kommandos
- Skript zur Vorlesung Einführung in C von
Jürgen Kleinöder