Warum vi?
Unter Linux (und Unix ganz allgemein) gibt es unzählige Texteditoren.
Viele davon auch für grafische Benutzeroberflächen wie KDE oder Gnome.
Noch mehr im reinen Textmodus, einer der bekanntesten ist emacs.
Der vi-Editor ist anfänglich etwas schwer zu verstehen, da er nicht
im Eingabemodus beginnt und insgesamt über drei Betriebsarten verfügt.
Warum sollte man sich also damit herumschlagen?
Meiner Ansicht nach sprechen einige Punkte für den vi, speziell als
Systemadministrator:
- Der vi verbraucht wenige Systemressourcen.
- Wenn man die Syntax beherrscht, ist man mit dem vi sehr schnell,
da sich viele Operationen mit wenigen Tastendrücken
erledigen lassen.
- Auf fast 100% aller Unix-Systeme ist ein vi oder ein Klon
installiert. Wenn man also mal auf einem fremden System
arbeiten muß, braucht man sich nicht an einen anderen
Editor zu gewöhnen. Da er im reinen Textmodus arbeitet,
ist man auch nicht von X-Windows und grafischen Oberflächen
abhängig.
- Der Freakfaktor ist ziemlich hoch ;-)
Nebenbei bemerkt habe ich auch meine Website fast komplett im vi erstellt.
Funktionsbeschreibung
Die drei wichtigen Betriebsarten des vi (visueller Modus,
Eingabemodus und ex-Modus) sind in den Manpages gut genug
beschrieben. Daher will ich an dieser Stelle eher eine
Zusammenfassung der wichtigsten Tastenbelegungen zum
schnellen Nachsehen präsentieren.
Bewegungsbefehle
Befehl |
Funktion |
h | Links |
j | Unten |
k | Oben |
l | Rechts |
w | Wortweise vorwärts |
W | Wortweise vorwärts, inklusive Interpunktionszeichen |
b | Wortweise rückwärts |
B | Wortweise rückwärts, inklusive Interpunktionszeichen |
e | Wortende |
E | Wortende inklusive Interpunktionszeichen |
0 | Zum Zeilenanfang |
$ | Zum Zeilenende |
+ | Erstes Zeichen der nächsten Zeile |
- | Erstes Zeichen der vorigen Zeile |
H | Erste Bildschirmzeile |
M | Mittlere Bildschirmzeile |
L | Letzte Bildschirmzeile |
Suchbefehle
Befehl |
Funktion |
/Muster | Suche vorwärts nach Muster |
?Muster | Suche rückwärts nach Muster |
n | Wiederhole letzte Suche in gleiche Richtung |
N | Wiederhole letzte Suche in umgekehrte Richtung |
/ | Wiederhole letzte Suche vorwärts |
? | Wiederhole letzte Suche rückwärts |
Einfügebefehle
Befehl |
Funktion |
i | Text vor dem Cursor einfügen |
I | Text am Anfang der Zeile einfügen |
a | Text nach dem Cursor einfügen |
A | Text am Ende der Zeile einfügen |
o | Neue Textzeile unter dem Cursor einfügen |
O | Neue Textzeile über dem Cursor einfügen |
Änderungsbefehle
Befehl |
Funktion |
r | Einzelnes Zeichen ändern |
R | Überschreiben |
cw | Wort ändern (mit cW inklusive Interpunktionszeichen) |
cc | Zeile ändern |
C | Zeile vom Cursor bis zum Zeilenende ändern |
Lösch- und Verschiebebefehle
Befehl |
Funktion |
x | Zeichen löschen |
X | Zeichen vor dem Cursor löschen |
dw | Wort löschen |
dd | Zeile löschen |
D | Bis zum Zeilenende löschen |
p | Zuletzt gelöschten oder kopierten Text hinter dem Cursor einfügen |
P | Zuletzt gelöschten oder kopierten Text vor dem Cursor einfügen |
yw | Wort in Puffer kopieren |
yy | Zeile in Puffer kopieren |
"ayy | Zeile in Puffer a kopieren |
"ap | Text aus Puffer a hinter dem Cursor einfügen |
Sonstige nützliche Befehle
Befehl |
Funktion |
. | Letzten Editierbefehl wiederholen |
u | Letzten Editierbefehl zurücknehmen |
J | Aktuelle und nächste Zeile vereinen |
:x | Datei speichern und vi beenden |
:w | Datei speichern |
:30,60w neudatei | Zeilen 30 bis 60 unter dem Namen neudatei speichern |
:e! | Datei neu laden und alle bisherigen Änderungen rückgängig machen |
:1,$s/Muster/Neu/g | In der ganzen Datei Muster durch Neu ersetzen |
Speziell der Ersetzungsbefehl kann sehr stark sein. Er akzeptiert auch reguläre Ausdrücke und
am Anfang einen Bereich von Zeilen, in dem er wirksam sein soll.
|