[color="SandyBrown"]Der Editor vi [/color]
Der vi ist der Standardeditor unter Linux und läßt sich sehr schnell bedienen, wenn man mit den grundlegenden Befehlen vertraut ist.
Seine in Phyma/Mittelerde installierten "Ableger" sind der vim (vi-improved; Textoberfläche) und der gvim (graphical vim, graphische Oberfläche).
Der vimtutor (einfach vom Terminal aus aufrufen) ist ein hilfreiches Einsteigerprogramm - vorausgesetzt man bringt ein bißchen Zeit mit.
Aufrufen von vi
Starten läßt sich der Editor mit dem Befehl vi, beziehungsweise vim oder gvim:
vi [Dateiname]
öffnet die Datei Dateiname zum Bearbeiten oder legt diese, sofern sie noch nicht existiert, neu an.
Befehlsmodus, Eingabemodus und Kommandozeile
Der vi hat drei verschiedene Modi:
1) Der Befehlsmodus
Im Befehlsmodus kann man den vorliegenden Text bearbeiten.
Direkt nach dem Starten des vi befindet man sich in diesem Modus (man kann also nicht direkt Text eingeben!). Alle hier eingegebenen Zeichen werden als Befehle interpretiert und vom vi direkt ausgeführt. Will man nun Text eingeben, muß man in den Eingabemodus wechslen. Dies geschieht beispielsweise durch den Befehl
2) Der Eingabemodus
Hier kann man direkt Text eingeben.
Um den Eingabemodus zu verlassen, drückt man die Esc-Taste. Dadurch gelangt man in den Befehlsmodus.
3) Die Kommandzeile
Von der Kommandozeile aus kann man Dateien öffnen, speichern, usw. Außerdem muß man sich zum Verlassen des vi in diesem Modus befinden!
In die Kommandozeile gelangt man vom Befehlsmodus aus, indem man einen Doppelpunkt : eingibt. Vom Eingabemodus aus also
Verlassen des vi
Um den vi zu verlassen, wechselt man in die Kommandozeile und gibt q ein.gegebenenfalls
Dateien laden, speichern und schließen
:w Datei zwischendurch speichern
:wq Datei abspeichern und vi verlassen
:q vi verlassen, falls Datei abgespeichert wurde
:q! vi ohne Abspeichern verlassen
:r [Dateiname] fügt den Inhalt von [Dateiname] an der Cursorposition ein
:e [Dateiname] Datei [Dateiname] laden, wenn die Datei nicht existiert wird eine erzeugt
:next die nächste Datei laden, falls vi mit mehrern Dateien aufgerufen wurde
: prev die vorherige Datei laden,, falls vi mit meheren Dateien aufgerufen wurde
Text eingeben
i (insert) Eingabe vor dem aktuellen Zeichen
a (append) Eingabe nach dem aktuellen Zeichen
I Eingabe am Anfang der aktuellen Zeile
A Eingabe am Ende der aktuellen Zeile
o neue Zeile erzeugen und nach der aktuellen Zeile einfügen
O neue Zeile und vor der aktuellen Zeile einfügen
Text bearbeiten
Im Text kann man sich mit den Pfeiltasten oder alternativ mit den Tasten l, h, j, k nach links, rechts, unten und oben bewegen.
w Cursor ein Wort vorwärts bewegen
3w Cursor drei Worte vorwärts bewegen
b Cursor ein Wort rückwärts bewegen
$ mit dem Cursor zum Zeilenende springen
0 mit dem Cursor zum Zeilenanfang springen
G mit dem Cursor zur letzte Zeile springen
9G mit dem Cursor zur Zeile 9 springen
r [Zeichen] das Zeichen über dem Cursor mit [Zeichen] überschreiben
cw [Zeichen, Wort,...] bis zur nächsten Wortgrenze ab Cursorposition überschreiben
cc bis zur nächsten Zeilengrenze überschreiben
dd aktuelle Zeile löschen
4dd ab aktueller Zeile vier Zeilen löschen
dw Wort löschen (ab Cursorposition)
d$ oder D Löschen in aktueller Zeile von Cursorposition bis Zeilenende
yy aktuelle Zeile in den Puffer (Zwischenspeicher) schreiben
yw bis zum Ende des aktuellen Wortes in den Puffer schreiben
y$ bis zum Ende der aktuellen Zeile in den Puffer schreiben
7yy sieben Zeilen ab der aktuellen Zeile in Puffer schreiben
p Pufferinhalt unter der aktuellen Zeile einfügen
P Pufferinhalt über der aktuellen Zeile einfügen
u letzten Befehl rückgängig machen (undo)
ZZ Dateiinhalt abspeichern und vi verlassen
Im Text suchen und ersetzen
/ [Zeichen, Wort,...] von der aktuellen Position an vorwärts nach [Zeichen, Wort,...] suchen
? [Zeichen, Wort,...] von der aktuellen Position an rückwärts nach [Zeichen, Wort,...] suchen
n das letzte Suchkommando wiederholen
N das letzte Suchkommando in die jeweils andere Richtung wiederholen
f Zeichen sucht nach Zeichen in der aktuellen Zeile vorwärts
F Zeichen sucht nach Zeichen in der aktuellen Zeile rückwärts
:%s/Quelle/Ziel/ ersetzt Quelle im Text einmal durch Ziel
:%s/Quelle/Ziel/g ersetzt Quelle im Text überall durch Ziel
Beispiel:
Der Befehl ":5,$s/\~/Hallo/g " ersetzt von der fünften bis zur letzten Zeile "~" durch das Wort "Hallo".
Schrittweise Erklärung des Befehls:
: in die Kommandozeile wechseln
5,$ Der Befehl hat Auswirkung von Zeile 5 bis zur letzten Zeile. Ohne diese Angabe wirkt sich der Befehl nur in der aktuellen Zeile aus.
s ersetzen (substitute)
/\~/Tilde/ /alter Ausdruck/neuer Ausdruck/
\~ bei Sonderzeichen wie z.B. "~" einen Backslash voranstellen
g Auswirkung auf alle Vorkommen in der Zeile (global). Weglassen oder "1" bedeutet Auswirkung nur auf erstes Vorkommen.
"2" bedeutet zweites Vorkommen usw.
Optionen zum vi
Man kann den vi auch mit verschiedenen Optionen starten:
vi [-option] [Dateiname]
-i startet vi gleich im Eingabemodus
-R Datei read-only öffnen
+zeilennummer springt direkt zur angegebenen Zeile
+/[muster] Springt an die Stelle an der das erste mal [muster] auftaucht
links
http://home.teleos-web.de/mholtkamp/vimbook/1.html
Im Anhang eine Kurzanleitung als pdf