|
Einleitung: Der
VI-Editor ist bei fast jedem Unix-System anzutreffen. Deshalb macht
es vielleicht Sinn, wenn man sich die Mühe nimmt, um ihn ein wenig
besser kennenzulernen. Im Man von VI findet man übrigens die
Bedeutung von VI: "vim - Vi IMproved, a programmers text editor".
Wer nicht glaubt, dass VI gut zum Programmieren geeigenet ist,
sollte sich mal das Handbuch zu VI anschauen: Es umfasst viele
Seiten, um alle die Funktionen zum Programmieren zu beschreiben! Am
Anfang kann man viel besser mit einem menüorientierten Editor
arbeiten, aber wenn man VI beherrscht, finde ich, kann man damit
viel schneller arbeiten. Auch muss man nicht alle Befehle kennen, um
damit zu arbeiten, ein paar der Wichtigsten genügen für normale
Zwecke.
Der
Befehls- und der Input- Modus:
Der vi-Editor
Es gibt grundsätzlich zwei verschiedene Modi des Editors:
Der Command Mode: Hier kann gelöscht werden oder in den
Input Modus gewechselt werden.
Der Input Modus: Hier kann Text eingegeben werden.
+--------------+
| Unix Shell |
+--------------+
|
|
|
+--------------+
| Command Mode |
+--------------+
|
|
| +-----------+
| | i insert | +---------------------+
+---------| a append |---------| Input Mode |
| +-----------+ +---------------------+
| |
| |
| x 1 Zeichen löschen |
| dd 1 Zeile löschen | Text eingeben
| |
| |
| |
| |
| |
| |
+--------------+ +-------+ +----------------------+
| Command Mode |--------| ESC |-------| Input Mode verlassen |
+--------------+ +-------+ +----------------------+
|
| :wq
|
+--------------+
| Unix Shell |
+--------------+
VI-Befehle
In Unix (Linux) kommt es auf die Gross/klein-schreibung an! Falls sich vi
seltsam benimmt, überprüfe ob Du versehentlich die [Caps-Lock] Taste
gedrückt hast!
Durch voranstellen einer Zahl lassen sich die meisten Befehle mehrfach
ausführen.
Mode wechseln, Text einfügen und überschreiben |
i |
Einfügen an Cursorposition |
A |
Einfügen am Zeilenende |
o |
Einfügen auf neuer Zeile unterhalb Cursor |
O |
Einfügen auf neuer Zeile oberhalb Cursor |
rchar |
Ein Zeichen durch char ersetzen |
Rtext |
ssberschreiben mit text |
cwtext |
Ersetzen biss zum Wortende mit text |
J |
Nächste Zeile ans Ende der Aktuellen setzen |
[ESC] |
Wechselt vom Insert Mode in den Command Mode |
Ctrl-g |
Zeigt Infos zum File an |
|
|
Cursorbewegungen |
h, j, k, l |
Cursortasten (falls die â??richtigenâ?? nicht gehen) |
B, E; b, e |
Wortweise rückwärts/vorwärts |
0 (Null) |
An den Zeilenanfang |
Ctrl-b, Ctrl-f |
Seitenweise zurück/vorwärts |
:n |
Zur Zeile n |
G |
Auf die letzte Zeile |
% |
Springt zum Gegenstück der Klammer |
|
|
Text löschen, puffern einsetzen |
x |
Löscht Zeichen unter Cursor |
D |
Löscht bis Zeilenende |
dd |
Löscht ganze Zeile |
:m,n |
Löscht Zeilen m bis n |
yy |
ssbernimmt aktuelle Zeile in den Puffer |
P |
Setz Pufferinhalt nach Cursor ein |
p |
Setz Pufferinhalt vor Cursor ein |
|
|
Suchen und ersetzen |
/string |
Sucht ab Cursorposition vorwärts nach string |
?string |
Sucht ab Cursorposition rückwärts nach string |
n |
Wiederholt den letzen Suchbefehl |
N |
Wiederholt den letzten Suchbefehl in anderer Richtung |
:n,m/str1/str2/opt |
Ersetzt ab Zeile n bis m str1 durch str2; opt kann sein: g (global), c (confirm), p (print, geänderte Zeilen anzeigen) |
. (Punkt) |
Wiederholt den letzten Editierbefehl |
u |
Macht letztes Kommando rückgängig |
U |
Aktuelle Zeile in den ursprünglichen Zustand |
|
|
Fileoperationen |
vi file(s) |
ssffnet file |
:n |
Nächstes File (falls mehrere geöffnet sind) |
:r file |
Fügt file an Cursorpos ein |
:w |
Speichert aktuelles File |
:w file |
Speichert aktuelles File als file |
:wq |
Speichern und vi beenden |
:q! |
Verlässt vi ohne speichern |
|
|