vi Kurzreferenz

Freundlicherweise von Oliver Bruckauf zur Verfügung gestellt.

Also nochmal ganz langsam. Im Vi gibt es (im wesentlichen) zwei Modi. Der eine ist der Befehlsmodus, der andere der Eingabemodus. Im Befehlsmodus läuft man im Text herum, löscht Wörter oder Zeilen nach Belieben und so weiter. Nur neuen Text kann man damit nicht eingeben. Dazu muß man in den Eingabemodus. Das geht, indem man im Befehlsmodus 'i' oder 'a' drückt. Dann kann man nur noch Text eingeben, aber sonst geht fast nur noch Backspace oder ESC. Mit ESC kann man diesen Modus dann wieder verlassen.

Im Befehlsmodus sind die meisten normalen Tasten mit irgendwelchen Befehlen belegt. Wenn deine Terminaleinstellungen funktionieren, kannst Du auch die Pfeiltasten benutzen, ansonsten gibt es:

h
ein Zeichen nach links
l
ein Zeichen nach rechts
j
eine Zeile runter
k
eine Zeile rauf.
w
ein Wort weiter
b
ein Wort zurück
Ctrl-F
eine Seite weiter
Ctrl-B
eine Seite zurück
x
Löschen eines Zeichens
dw
Löschen eines Wortes
dd
Löschen einer Zeile
Natürlich gibt es noch *wesentlich* mehr Befehle, aber die kannst Du selbst herausfinden.

Jetzt zum dritten Modus: der Befehlszeile. Manche Kommandos brauchen Parameter, die man im normalen Befehlsmodus nicht eingeben kann. Daher gibt es die ':'-Befehlszeile. Also : drücken, dann befindest Du Dich in einer Befehlszeile, wo Du z.B.

w
zum Speichern der aktuellen Datei
w filename
zum Speichern der Datei unter anderem Namen
q
zum Verlassen
eingeben kannst. Also ':w' tippen zum speichern. ':q' zum Beenden. Oder ':wq' zum speichern und gleichzeitigen beenden. Dieses Kommando gibt es auch als Abkürzung (:x). Abgeschlossen wird die Eingabe mit der Enter-Taste.

Wenn Du beenden willst und die Datei ist noch nicht gespeichert mußt Du Deinen Willen zum Verwerfen der Änderungen explizit angeben. Das passiert durch Anhängen eines ! an den Befehl. Beenden ohne Speichern ist dann also ':q!'. Genauso geht das auch, wenn Du eine readonly Datei überschreiben willst. Sofern Du die Rechte dazu hast mußt Du also nicht nochmal raus, chmod und dann nochmal, sondern kannst die Datei mit ':w!' schreiben.

Wenn Dein vi ein vim (Vi IMproved) ist (findet man mit :version heraus), dann kannst Du die Hilfe mit :help aufrufen.

So, DAS muß jetzt aber für den Start reichen. :-)

Noch einiges von mir:
Gelöschte Zeilen, Wörter, Buchstaben, ... kann man mit 'p' an anderer Stelle einfügen. Will man mehrere Zeilen, Wörter, Buchstaben, ... löschen oder kopieren einfach die Anzahl der Zeilen, Wörter, Buchstaben, ... vor dem Lösch-/Kopierbefehl tippen. z.B. '10Y' kopiert 10 Zeilen in die Zwischenablage des vi. '5dd' löscht 5 Zeilen und speichert sie in der Zwischenablage des vi. Beim vim kann man komfortabel mit den Cursortasten (bzw. h j k l) markieren. Einfach im Befehlsmodus 'v' tippen. Das Markieren kann man mit ESC abbrechen. Auch mal 'V' oder 'Ctrl-v' testen! Viele (beinahe alle) Befehle kann man so mehrfach ausführen lassen. Einfach die Zahl der gewünschten Wiederholungen vor dem Befehl tippen. z.B. '15j' springe 15 Zeilen nach unten.

123G
springe zu Zeile 123
J
verbinde zwei Zeilen zu einer
u
undo
^
springe an den Zeilenanfang
$
springe an das Zeilenende
n
weitersuchen vorwärts
N
weitersuchen rückwärts
p
einfügen aus der Zwischenablage des vi
Y
eine Zeile in die Zwischenablage des vi kopieren
Auf der Befehlszeile:
/ABC
suche ABC
1,$s/123/ABC/g
ersetze 123 durch ABC in der ganzen Datei.
Bei Suchen und Ersetzen werden reguläre Ausdrücke als Suchmuster erwartet. Siehe zu diesem Thema regexp(5)

$Id: vi-ref.html,v 1.1.1.1 2000/03/20 20:23:51 jkunz Exp $