HOME

VI

Wie verwendet man den EditorVI
AufrufBedeutung
Aufrufen des Editors
vi[CR] Der Editor wird ohne Dateinamen gestartet, d.h. der Inhalt des Puffers ist keinem festen Dateinamen zugeordnet. Das kann später (mit dem Befehl :w) gemacht werden.
vi +n Datei[CR] Der Inhalt der Datei Datei wird ab Zeile n zur Bearbeitung auf dem Bildschirm gezeigt.
vi + Datei[CR] Der Editor positioniert den Cursor am Ende der Datei Datei.
vi +/text Datei[CR] Der Editor setzt den Cursor auf das erste Zeichen in der Zeile, in dem der String text zum ersten Mal in der Datei Dateivorkommt.
Verlassen des Editors
:wq[CR] (Write and Quit - Schreiben und Beenden) Der aktuelle Bearbeitungsstand der Datei wird abgespeichert und der Editor verlassen.
:x[CR] (Exit - Verlassen) Der aktuelle Bearbeitungsstand der Datei wird abgespeichert und der Editor verlassen.
:q[CR] (Quit - Beenden) Der Pufferinhalt wird nicht in eine Datei übernommen. Wenn Änderungen gemacht wurden und dieser Befehl gewählt wurde, erscheint eine Fehlermeldung, da in diesem Fall ein Verlassen des Editors aus Sicherheitsgründen nicht möglich ist. Abhilfe schafft der folgende Befehl.
:q![CR] (Quit! - Beenden!) Der Pufferinhalt wird nicht in eine Datei übernommen. Der Editor wird auf jeden Fall (selbst bei noch nicht gespeicherten Änderungen im Text) verlassen.
Text laden
:e Datei[CR] (Edit - Bearbeiten) Aus der Editorsitzung heraus wird die Datei Datei geladen. Es erscheint eine Fehlermeldung, wenn ein bearbeiteter Text im Editor ist, der noch nicht gespeichert wurde (Entweder mittels :w speichern, oder den folgenden Befehl verwenden).
:e! Datei[CR] (Edit! - Bearbeiten!) Aus der Editorsitzung heraus wird die Datei Datei geladen, auch wenn der aktuell bearbeitetet Text noch nicht gespeichert wurde.
:e![CR] (Edit! - Bearbeiten!) Das Original der aktuellen Datei wird erneut in den Arbeitsspeicher geladen und alle in der bisherigen Sitzung gemachten Änderungen gehen verloren.
:e#[CR] Es wird die Datei geladen, die zuletzt vor der aktuellen in der jetzigen Editorsitzung bearbeitet wurde.
:e +n Datei[CR] Die Datei Datei wird geladen und der Cursor auf das erste Zeichen der n-ten Zeile gesetzt.
:e + Datei[CR] Die Datei Datei wird geladen und der Cursor an deren Ende positioniert.
:e +/text Datei[CR] Die Datei Datei wird geladen und der Cursor auf das erste Zeichen der Zeile gesetzt, in dem der String text zum ersten Mal vorkommt.
:n[CR] (Next - Nächste Datei) Es wird die nächste Datei geladen, die beim Aufruf des Editors in der Kommandozeile angegeben wurde. Falls die aktuell bearbeitete Datei verändert, aber nicht abgespeichert wurde (:w), erscheint eine entsprechende Fehlermeldung.
:n![CR] (Next! - Nächste Datei!) Es wird die nächste Datei geladen, die beim Aufruf des Editors in der Kommandozeile angegeben wurde. Diese wird ohne weitere Kontrolle (keine Fehlermeldung) in den Arbeitsspeicher geladen, der aktuelle Editor-Inhalt geht veloren.
:r Datei[CR] Der Inhalt der Datei Datei wird unterhalb der aktuellen Zeile eingefügt.
Text speichern
:w[CR] (Write - Schreiben) Der aktuelle Bearbeitungsstand des Textes wird abgespeichert.
:w Datei[CR] (Write - Schreiben) Der Text wird nicht in die Originaldatei, sondern in Datei abgespeichert. Existiert Datei bereits, wird mit einer Fehlermeldung abgebrochen.
:w! Datei[CR] (Write! - Schreiben!) Der Text wird nicht in die Originaldatei, sondern in Datei abgespeichert, jedoch wird nicht überprüft ob bereits eine Datei mit Namen Datei existiert, ist das der Fall, geht deren Inhalt verloren.
:w > Datei[CR] (Write - Schreiben) Der Text wird in die Datei Datei abgespeichert.
:w >> Datei[CR] (Write - Schreiben) Der Text wird hinten an die Datei Datei angehängt.
Cursor positionieren
mit wohin
^ Erstes Zeichen der aktuellen Zeile
0 Erste Spalte der aktuellen Zeile (Bem: die Taste ist "Null", nicht "grosses O")
$ Letzte Spalte der aktuellen Zeile
h Ein Zeichen nach links
nh n Zeichen nach links
[BS] Backspace (wie h)
[Ctrl-H] wie h
l Ein Zeichen nach rechts
nl n Zeichen nach rechts
[Space] Ein Zeichen nach rechts
n[Space] n Zeichen nach rechts
k Wenn möglich, in der gleichen Spalte eine Zeile aufwärts
nk Wenn möglich, in der gleichen Spalte n Zeilen aufwärts
j Wenn möglich, in der gleichen Spalte eine Zeile abwärts
nj Wenn möglich, in der gleichen Spalte n Zeilen abwärts
b (Beginning - Anfang) Anfang des letzten Wortes
B (Beginning - Anfang) Anfang des letzten Wortes, dessen Delimiter ein [Space] ist. Delimiter sind die Zeichen direkt vor und hinter einem Wort.
e Wortende vorwärts
E Wortende vorwärts, dessen Delimiter ein [Space] ist. Delimiter sind die Zeichen direkt vor und hinter einem Wort.
w Anfang des nächsten Wortes
W Anfang des nächsten Wortes, dessen Delimiter ein [Space] ist. Delimiter sind die Zeichen direkt vor und hinter einem Wort.
nG (Go - Gehe zu) Springe in die n-te Zeile des Textes
G (Go - Gehe zu) Letzte Zeile des Textes
+ Textanfang in der nächsten Zeile
- Textanfang in der vorangegangenen Zeile
[CR] Textanfang in der nächsten Zeile
H (Home - Nach Hause) Linke obere Ecke des Bildschirms
nH n-te Zeile des Bildschirms
M (Middle - Mitte) Mittlere Zeile des Bildschirms
L (Last - Letzte Zeile) Letzte Zeile des Bildschirms
nL n-te Zeile über dem unteren Bildschirmrand
n| Bringt den Cursor in n-te Spalte
Text einfügen
Die folgenden Befehle wechseln aus dem Kommando-Modus in den Einfüge-Modus!!!
a (Append - Anhängen) die Zeichen werden rechts der aktuellen Cursor-Position eingefügt (= angehängt)
A (Append - Anhängen) die Zeichen werden am Zeilenende der aktuellen Zeile angehängt
$a wie A
i Die Zeichen werden links der aktuellen Cursor-Position eingefügt
I Die Zeichen werden am Anfang der aktuellen Zeile eingefügt
o Unterhalb der aktuellen Zeile wird eine neue eingefügt. Der Cursor wird in die erste Spalte positioniert.
O Oberhalb der aktuellen Zeile wird eine neue eingefügt. Der Cursor wird an den Zeilenanfang gesetzt.
Text überschreiben
Die folgenden Befehle wechseln aus dem Kommando-Modus in den Einfüge- oder Überschreibe-Modus!!!
cc Die aktuelle Zeile wird komplett durch den folgenden Text ersetzt. Das Ersetzungsende muss dem Editor mit [ESC] mitgeteilt werden.
ncc Wie cc, jedoch werden n Zeilen statt einer ersetzt. Das Ersetzungsende muss dem Editor mit [ESC] mitgeteilt werden.
c$ Die Ersetzung reicht von der aktuellen Cursorposition bis zum Zeilenende, auch wenn weniger Text eingegeben wird. Das Ersetzungsende muss dem Editor mit [ESC] mitgeteilt werden.
cw Die Ersetzung reicht von der aktuellen Cursorposition bis zum Wortende, auch wenn weniger Text eingegeben wird. Das Ersetzungsende muss dem Editor mit [ESC] mitgeteilt werden.
C Die Ersetzung reicht von der aktuellen Cursorposition bis zum Zeilen, auch wenn weniger Text eingegeben wird. Das Ersetzungsende muss dem Editor mit [ESC] mitgeteilt werden.
r Nach diesem Zeichen kann genau das Zeichen, auf dem der Cursor steht, überschrieben werden. Danach schaltet der Editor automatisch in den Kommando-Modus zurück.
R Schaltet den permanenten Überschreibe-Modus ein. Ab der aktuellen Cursorposition kann Text überschrieben werden. Ende mit [ESC].
s Ersetzt das Zeichen unter dem Cursor durch den nachfolgend eingegebenen Text, der durch [ESC] beendet wird.
ns Wie s, jedoch werden die nächsten n Zeichen durch den Text überschrieben. Ende mit [ESC].
S Der nachfolgend eingegebene Text ersetzt die aktuelle Zeile, d.h. nach Eingabe vin [ESC] ist der alte Text gelöscht.
Suchen und Ersetzen
  Als Sonderzeichen sind dabei anzusehen:
^ Steht in Begriff als Zeichen für den Zeilenanfang
$ Steht in Begriff als Zeichen für das Zeilenende
. Steht in Begriff als Wild-Card (= Platzhalter)
\\ Steht in Begriff als Zeichen für \
\. Steht in Begriff als Zeichen für .
\< Steht in Begriff als Zeichen für <
\> Steht in Begriff als Zeichen für >
/Begriff Nach diesem Kommando wird der Datei-Inhalt vorwärts nach dem angegebenen Begriff Begriff durchsucht, wobei nach dem Erreichen des Dateiendes die Suche am Anfang fortgesetzt wird, bis die Datei einmal komplett untersucht worden ist. War die Suche erfolglos, wird ein entsprechender Kommentar ausgegeben. Sonderzeichen müssen im Suchbegriff durch ein vorangehendes \ als normale Zeicehen deklariert werden.
?Begriff Wie /Begriff, jedoch wird die Datei rückwärts durchsucht.
/ Das letzte Kommando der Vorwärtssuche wird wiederholt.
? Das letzte Kommando der Rückwärtssuche wird wiederholt.
n Das letzte Suchkommando wird wiederholt, unabhängig von der Richtung.
fZeichen Es wird in der aktuellen Zeile vorwärts nach Zeichen gesucht und der Cursor darauf positioniert.
FZeichen Wie fZeichen, jedoch wird rückwärts gesucht.
tZeichen Wie fZeichen, jedoch wird der Cursor vor dem Zeichen positioniert.
TZeichen Wie FZeichen, jedoch wird der Cursor vor dem Zeichen positioniert.
; Wiederholung des letzten f-, F-, t- oder T-Kommandos.
, Wiederholung des letzten f-, F-, t- oder T-Kommandos, jedoch bei invertierter Bewegungsrichtung.
:s/alt/neu/ In der aktuellen Zeile wird das nächste Auftreten von alt durch neu ersetzt. Tritt die zu ersetztende Stelle mehrfach in der Zeile auf, dann wird sie nur beim ersten Mal verändert.
:s/alt/neu/g Ersetzt in der aktuellen Zeile alle Texte alt durch neu. (g = global)
:1,$s/alt/neu/g Die Zeichenkette alt wird im gesammten Text durch neu ersetzt.
:m,n,s/alt/neu In den Zeilen m bis n wird die Zeichenkette alt durch neu ersetzt, aber in jeder Zeile höchstens einmal. Tritt der String mehrfach in einer Zeile auf, wird er nur beim ersten Mal ersetzt.
Änderungen rückgängig machen
u (Undo - Ungeschehen machen) Macht den letzten Befehl rückgängig.