Sie besuchen die Seite über eine ungesicherte Verbindung. Gesicherte Verbindung mit https (empfohlen)
Bei Beschränkungen des Internet-Zugangs (Gäste-WLAN oder ähnliches, ohne https) wechseln Sie bitte nicht

vi unter Unix Linux

... dort war er fast immer

Kleine vi Referenz (Unix)

nach oben (Seitenanfang) nach oben (Seitenanfang)
Aufrufarten des Editors vi
::: Verlassen des Editors Beenden ::: Speichern Speichern ::: Positionieren des Cursors Cursorbewegung ::: Blättern auf dem Bildschirm Blättern  
::: Editieren - Einfügen, Formatieren, ... Editieren ::: Suchen und Ersetzen Suchen / Ersetzen ::: Sonderzeichen Sonderzeichen ::: Optionen, Einstellungen Optionen ::: Shell Commands Shell  
Option Beschreibung  
  Allgemeine Aufrufsyntax

vi [-r] [-l] [-R] [-wn] [+Befehl] Datei

 
-l LISP-Modus einschalten  
-r recover (wiederherstellen). Nach Systemabsturz bei aktivem Editor oder nach Beenden des Editors mit kill wird bei Neustart von vi die Bearbeitung automatisch an der Stelle fortgesetzt, an der man sich gerade befand.  
vi -r <Datei> Wiederherzustellenden Text in <Datei> schreiben (siehe auch Option -r)  
-R Read Only (nur lesen). Die zu öffnende Datei wird im Lesemodus geöffnet, keine Änderungen möglich.  
-wn Die Fenstergrösse (Window size) wird auf n Zeilen eingestellt.  
+Befehl Die möglichen Befehle stammen aus dem Vorrat des Ex-Editors, sie werden vor dem eigentlichen Editieren abgearbeitet.  
Beispiele Beschreibung  
vi +n Datei Die angegebene Datei wird ab Zeile n angezeigt.  
vi + Datei,
vi +$ Datei
Nach laden von Datei wird der Cursor am Ende der Datei positioniert.  
vi +/string Datei Nach laden von Datei wird der Cursor in der Zeile, in welcher die angegebene Zeichenfolge string zum ersten Mal auftritt, positioniert.  
Spezielle Optionen beim Aufruf von vi  
vi Beim Aufruf ohne Dateinamen ist der beim Start aktive Puffer keinem festen Dateinamen zugeordnet. Dieses kann später mit :w Datei durchgeführt werden.  
vi Datei(en) Die erste bezeichnete Datei wird in den Puffer geladen. Mit :n kann die jeweils nächste Datei geladen werden, mit :x wird die komplette Session ohne nachladen noch nicht bearbeiteter Dateien beendet.  
vedit Startet den Editor in seiner "geschwätzigsten" Form (verbose:
In der letzten Bildschirmzeile werden diverse Informationen angezeigt.
Die restliche Syntax ändert sich nicht.
 
vi verlassen, mit/ohne speichern, ...
::: Starten des Editors Aufrufen ::: Speichern Speichern ::: Positionieren des Cursors Cursorbewegung ::: Blättern auf dem Bildschirm Blättern nach oben (Seitenanfang)
::: Editieren - Einfügen, Formatieren, ... Editieren ::: Suchen und Ersetzen Suchen / Ersetzen ::: Sonderzeichen Sonderzeichen ::: Optionen, Einstellungen Optionen ::: Shell Commands Shell  
Option Beschreibung  
  Zur Eingabe eines Kommandos muss der Editor im Befehlsmodus sein oder durch Betätigung der Esc-Taste in diesen geschaltet werden. Da es normalerweise keine Anzeige für den jeweils aktiven Modus gibt, sollte man die Esc-Taste grundsätzlich betätigen. Es schadet auf keinen Fall!

Im Befehlsmodus springt der Cursor nach Eingabe eines Doppelpunktes (:) in die unterste Bildschirmzeile.
 
ZZ Der aktuelle Pufferinhalt wird gespeichert und die Session beendet. Es ist keine Bestätigung mit der [Return]-Taste erforderlich.  
:x eXit (verlassen). Siehe ZZ.  
:wq Write and Quit (schreiben und beenden). Puffer speichern, Editor verlassen.

Achtung!Typischer Fehler von Neueinsteigern: Eingabe von ":qw".
Das funktioniert nicht, da der Editor sich nicht zuerst beenden und dann die Daten speichern kann.
 
:q Quit (beenden). Geht nur, wenn keine Änderungen am ursprünglichen Dateiinhalt vorgenommen wurden.  
:q! Quit! (beenden!). Beenden ohne speichern. Änderungen gehen verloren.  
Speichern
::: Starten des Editors Aufrufen ::: Verlassen des Editors Beenden ::: Positionieren des Cursors Cursorbewegung ::: Blättern auf dem Bildschirm Blättern nach oben (Seitenanfang)
::: Editieren - Einfügen, Formatieren, ... Editieren ::: Suchen und Ersetzen Suchen / Ersetzen ::: Sonderzeichen Sonderzeichen ::: Optionen, Einstellungen Optionen ::: Shell Commands Shell  
mit Wirkung  
:w Write (schreiben). Puffer speichern.  
:w! Puffer speichern, read-only Dateien überschreiben.  
:w Datei Pufferinhalt nicht in Originaldatei, sondern in Datei Datei speichern. Es werden keine bestehenden Daten überschrieben, statt dessen erfolgt eine Fehlermeldung.  
:w! Datei Puffer nicht in Originaldatei, sondern in Datei speichern. Falls Datei schon existiert wird sie mit neuem Inhalt überschrieben.  
:n,mw Datei Pufferinhalt von Zeile n bis m in Datei speichern.
Hinweis: Die Anzeige der Zeilennummern kann mit :se nu aktiviert werden.
 
Cursor in vi positionieren
::: Starten des Editors Aufrufen ::: Verlassen des Editors Beenden ::: Speichern Speichern ::: Blättern auf dem Bildschirm Blättern nach oben (Seitenanfang)
::: Editieren - Einfügen, Formatieren, ... Editieren ::: Suchen und Ersetzen Suchen / Ersetzen ::: Sonderzeichen Sonderzeichen ::: Optionen, Einstellungen Optionen ::: Shell Commands Shell  
mit wohin  
Achtung! Mit Ausnahme der Pfeiltasten sowie einiger Tastenkombinationen funktionieren die folgenden Befehle normalerweise nur im Befehlsmodus wie geschildert.  
^ Zum ersten Zeichen in der aktuellen Zeile  
0 In die erste Spalte der aktuellen Zeile  
$ Zum letzten Zeichen in der aktuellen Zeile  
Pfeil links
[Pfeil links]
h
Um ein Zeichen nach links  
backspace
[backspace]
wie h  
[Ctrl]H wie h  
nh Um n Zeichen nach links  
Pfeil rechts
[Pfeil rechts]
l
Um ein Zeichen nach rechts  
nl Um n Zeichen nach rechts  
k Wenn möglich, in der gleichen Spalte um eine Zeile nach oben  
nk Wenn möglich, in der gleichen Spalte um n Zeilen nach oben  
j Wenn möglich, in der gleichen Spalte um eine Zeile nach unten  
<n>j Wenn möglich, in der gleichen Spalte um n Zeilen nach unten  
[Ctrl]H Entweder vorheriges Zeichen löschen oder wie h  
<n>Leertaste, Leerzeichen
<n>[Leertaste]
Betätigung der Leertaste mit vorheriger Angabe einer Zahl n bewirkt n-malige Ausführung der eingestellten Funktion.  
b Zum Anfang des letzten Wortes  
B Zum Anfang des letzten Wortes, welches durch ein Leerzeichen getrennt ist.  
e Vorwärts zum Wortende  
w Zum Anfang des nächsten Wortes  
W Zum Anfang des nächsten Wortes, welches durch Leerzeichen getrennt ist.  
'' Zurück zur Position der letzten Änderung  
n Zur gleichen Spalte in der nächsten Zeile (wenn möglich)  
p Zur gleichen Spalte in der vorherigen Zeile (wenn möglich)  
<n>G Gehe zur n-ten Zeile der Datei  
G Zur letzten Zeile in der Datei  
+ Zum Anfang des Textes in der nächsten Zeile  
Return, Eingabetaste
[Return]
Zum Anfang des Textes in der nächsten Zeile, wie [+]  
- Zum Anfang des Textes in der vorigen Zeile  
H Home. Cursor in der oberen linken Ecke des Bildschirms positionieren.  
<n>H Zur n-ten Zeile des Bildschirminhalts  
M Middle. Zur mittleren Zeile des Bildschirminhalts  
L Last. Zur letzten Zeile des Bildschirminhalts  
<n>L Zur n-ten Zeile über dem unteren Bildschirminrand.  
( Zum Anfang des vorhergenhenden Satzes; neue Zeile in Verbindung mit einer Zahl wird um die entsprechnede Anzahl von Sätzen zurückgesprungen  
) Zum Ende des aktuellen Satzes; neue Zeile in Verbindung mit einer Zahl wird um die entsprechnede Anzahl von Sätzen vorwärts gesprungen  
{ Zum Anfang eines Absatzes welcher beispielsweise durch eine Leerzeile oder [[ gekennzeichnet ist. Die zusätzliche Angabe einer Zahl vorab bestimmt, um wieviele Absätze gesprungen wird.  
} Zum Ende eines Absatzes, ansonsten entstprechend [{].  
[[ Abschnittsbeginn, gekennzeichnet durch ^L oder {  
]] Abschnittsende, gekennzeichnet durch ^L oder }  
Auf dem Bildschirm blättern
::: Starten des Editors Aufrufen ::: Verlassen des Editors Beenden ::: Speichern Speichern ::: Positionieren des Cursors Cursorbewegung nach oben (Seitenanfang)
::: Editieren - Einfügen, Formatieren, ... Editieren ::: Suchen und Ersetzen Suchen / Ersetzen ::: Sonderzeichen Sonderzeichen ::: Optionen, Einstellungen Optionen ::: Shell Commands Shell  
mit wohin  
Achtung! Die folgenden Befehle funktionieren nur im Befehlsmodus.  
[Ctrl]b,
[Ctrl]B
Wenn möglich, eine Bildschirmseite rückwärts blättern. Dabei wird zur einfacheren Orientierung eine zweizeilige Überlappung des Inhalts eingerichtet.  
<n>[Ctrl] + [b],
<n>[Ctrl] + [B]
Wenn möglich, um n Bildschirmseiten rückwärts blättern. Dabei wird zur einfacheren Orientierung eine zweizeilige Überlappung des Inhalts eingerichtet.  
[Ctrl]d,
[Ctrl]D
Wenn möglich, eine halbe Bildschirmseite weiterblättern.  
<n>[Ctrl]d,
<n>[Ctrl]D
Wenn möglich, um n Zeilen weiterblättern. Eine durch Angabe der Anzahl n vorgenommene Einstellung bleibt während der aktiven Session für [Ctrl]+[D] und [Ctrl]+[U] erhalten.  
[Ctrl]f
[Ctrl]F
Wenn möglich, eine Bildschirmseite weiterblättern. Dabei wird zur einfacheren Orientierung eine zweizeilige Überlappung des Inhalts eingerichtet (wenn möglich).  
<n>[Ctrl]f
<n>[Ctrl]F
Wenn möglich, um n Bildschirmseiten weiterblättern. Dabei wird zur einfacheren Orientierung eine zweizeilige Überlappung des Inhalts eingerichtet (wenn möglich).  
[Ctrl]J
[Ctrl]N
Wenn möglich, den Cursor in der nächsten Zeile auf die gleiche Spaltenposition setzen.  
<n>[Ctrl]J Wenn möglich, den Cursor um <n> Zeilen weiterbewegen und dort auf die gleiche Spaltenposition setzen.  
[Ctrl]M Wenn möglich, den Cursor in der nächsten Zeile zum ersten Zeichen bewegen, welches kein Leerzeichen ist.  
[Ctrl]u
[Ctrl]U
Wenn möglich, eine halbe Bildschirmseite zurückblättern.  
[Ctrl]Y Wenn möglich, den Bildschirminhalt um eine Zeile zurück verschieben.  
z+ Wenn möglich, den Bildschirminhalt um eine Seite weiterblättern.  
z- Wenn möglich, den Bildschirminhalt um eine Seite zurück blättern.  
z. Verschiebt den Bildschirminhalt so, dass der Cursor in der mittleren Bildschirmzeile steht.  
z Die aktuelle Zeile wird zur ersten Zeile des Bildschirminhalts, gleichzeitig wird der Bildschirminhalt neu aufgebaut.  
[Ctrl]G Statuszeile mit wichtigen Informationen bezüglich des aktuellen Bearbeitungsstandes aktivieren.  
<n>G Wenn möglich, Cursor auf die <n>-te Zeile der Datei setzen.  
G Cursor auf die letzte Zeile der Datei setzen.  
  Manchmal kommt es vor, dass die Bildschirmausgabe reichlich verwirrt aussieht (speziell nach mehrmaligem Blättern). Abhilfe ist wie folgt möglich:  
[Ctrl]l Neuaufbau des Bildschirms.  
[Ctrl]r Löschen und Neuaufbau des Bildschirms.  
z Neuaufbau und Neupositionierung des Bildschirms (siehe oben).  
Editieren - Einfügen, löschen, formatieren, ...
::: Starten des Editors Aufrufen ::: Verlassen des Editors Beenden ::: Speichern Speichern ::: Positionieren des Cursors Cursorbewegung ::: Blättern auf dem Bildschirm Blättern nach oben (Seitenanfang)
::: Suchen und Ersetzen Suchen / Ersetzen ::: Sonderzeichen Sonderzeichen ::: Optionen, Einstellungen Optionen ::: Shell Commands Shell  
  Einfügen und Formatieren (im Befehlsmodus)  
a append (anhängen). Nachfolgend eingegebene Zeichen werden rechts vom Cursor eingefügt.  
A
$a
Nachfolgend eingegebene Zeichen werden am Ende der Zeile angehängt.  
i insert (einfügen). Nachfolgend eingegebene Zeichen werden links vom Cursor eingefügt.  
I Nachfolgend eingegebene Zeichen werden am Zeilenanfang eingefügt.  
J Im Befehlsmodus bewirkt diese Taste das Anfügen der nächsten Zeile an die aktuelle (Zeilen verbinden).  
o open (öffnen). Neue Zeile unterhalb der aktuellen Zeile einfügen, Cursor dort positionieren und Einfügemodus aktivieren. Nachfolgend eingegebene Zeichen werden in dieser neuen Zeile eingefügt.  
O Wie [o], jedoch wird die neue Zeile oberhalb der aktuellen Zeile eingefügt.  
u undo (rückgängig machen). Letzten Befehl rückgängig machen.  
U Macht alle vorgenommenen Änderungen in der aktuellen Zeile rückgängig.  
.
(Punkt)
Wiederholt die gesamte letzte Änderung ab der aktuellen Cursorposition.  
[Ctrl] Die aktuelle Zeile wird an Cursorposition aufgetrennt. Der rechts vom Cursor stehende Zeilenteil wird in eine neue Zeile unterhalb der aktuellen eingefügt.  
[Ctrl]D Automatisches Einrücken einschalten  
[Ctrl]D Automatisches Einrücken für die aktuelle Zeile ausschalten.  
O[Ctrl]D Automatisches Einrücken ausschalten  
< Schiebe Text nach links.  
> Schiebe Text nach rechts.  
  Befehle im Einfügemodus nach oben (Seitenanfang)
Return
[Return]
Neue Zeile eröffnen.  
Rückwärts löschen, backspace
[backspace]
[Ctrl]H
Das zuletzt eingegebene Zeichen löschen.  
[Ctrl]w Das zuletzt eingegebene Wort löschen.  
[Ctrl]x Die zuletzt eingegebene Zeile löschen.  
\ Hebt die Befehlswirkung der gerade beschriebenen Korrekturzeichen auf. Dadurch werden sie wie Textzeichen behandelt.  
[Ctrl]v Steuerzeichen direkt als Controlsequenzen in Datei einfügen. Die Nachahmung derartiger Zeichen durch [^] sowie des passenden Buchstabens (z.B. ^L) ist nicht möglich.  
Escape
[Esc]
Beendet den Einfügemodus  
löschen
[Entf]
Bricht den Einfügemodus ab  
  Löschen von Zeichen nach oben (Seitenanfang)
d d ist die Einleitung eines Löschbefehls. Zusätzlich muss immer eine Bereichsangabe erfolgen.  
 
  Beispiele
dd Aktuelle Zeile löschen
ndd n Zeilen ab der aktuellen Zeile löschen
dL Löschen von der aktuellen Cursorposition bis zum Dateiende
dw Löschen des Wortes, in welchem der Cursor positioniert ist
d) Von der aktuellen Cursorposition bis zum Absatzende löschen
D Bis zum Ende der aktuellen Zeile löschen
 
x Das Zeichen an aktueller Cursorposition löschen.  
X Das Zeichen vor der aktuellen Cursorposition löschen (links davon).  
u Macht den letzten Befehl rückgängig.  
U Macht die Änderungen in der aktuellen Zeile rückgängig.  
.
(Punkt)
Wiederholt die gesamte letzte Änderung ab der aktuellen Cursorposition.  
  Kopieren von Zeichen nach oben (Seitenanfang)
  Innerhalb von vi gibt es 27 Puffer, von denen 26 mit den Buchstaben des Alphabets bezeichnet sind. Der nicht näher bezeichnete Puffer wird gewissermassen automatisch genutzt.

In diesen einen Puffer wird immer der gesamte zuletzt gelöschte Text (siehe Löschen) eingefügt. Mit dem Kommando u (undo, rückgängig) kann dieser Text wieder an die gleiche Stelle geschrieben werden bzw. mit den P-Kommandos an anderer Stelle eingefügt werden.
 
y Kopiert das Zeichen unter dem Cursor in den automatischen Puffer.  
ny Kopiert n + 1 Zeichen ab der aktuellen Cursorposition in den automatischen Puffer.  
yw Kopiert das Wort, in welchem der Cursor steht, in den automatischen Puffer. Es kann anschliessend mit p/P an anderer Stelle eingefügt werden.  
yy
Y
Kopiert die aktuelle Zeile in den automatischen Puffer.  
n yy Kopiert, inklusive und ausgehend von der aktuellen Zeile, n Zeilen in den automatischen Puffer.  
y]] Steht der Cursor auf einer geschweiften öffnenden Klammer ({), wird alles bis zur nächsten schliessenden geschweiften Klammer (}) in den Puffer kopiert.  
Yp Verdoppelt die aktuelle Zeile.  
n Yp Verdoppelt n Zeilen und fügt sie unterhalb der aktuellen Zeile ein.  
p Fügt den Inhalt des automatischen Puffers unterhalb der aktuellen Zeile ein.  
P Fügt den Inhalt des automatischen Puffers oberhalb der aktuellen Zeile ein.  
  Nutzung der 26 anderen Puffer

Diese Puffer sind mit alphabetischen Zeichen (a bis z) gekennzeichnet. Solange die aktuelle Session des Editors nicht mit :q beendet oder mit :x abgebrochen wird, geht der Pufferinhalt nicht verloren (auch nicht bei hinzuladen weiterer Dateien mit :e <Datei>).

Die Ansprache der Puffer geschieht im Befehlsmodus durch z.B. "a, "b usw..
 
"anyy n Zeilen in Puffer a kopieren  
"cnw n Worte in Puffer c kopieren  
"tp Inhalt des Puffers t unterhalb der aktuellen Zeile einfügen  
"zP Inhalt des Puffers z oberhalb der aktuellen Zeile einfügen  
  Zusätzlich zu den Puffern gibt es noch neun Register, in welchen die letzten neun vorgenommenen Änderungen gespeichert werden. Durch diese Speicherung ist es möglich, sie durch den Wiederherstellungs-(Recover-)Mechanismus wieder zu laden. Beim Wechsel der editierten Datei (auch innerhalb einer Session) geht ihr Inhalt verloren. Die Bezeichnung der Register erfolgt mit den Ziffern 1 bis 9, wobei sich die zuletzt gelöschte Zeihenfolge im Register 1 befindet. Die vorher gespeicherten Daten werden um jeweils ein Register "verschoben".  
  Beispiel:
Zunächst wurde das Wort Zeichen aus der Datei gelöscht und dabei vom Editor im Register 1 gespeichert. Anschliessend wird das Wort Stern gelöscht.

Stern ist nun im Register 1, durch die Verschiebung ist Zeichen im Register 2.

Es können nur neun Zeichenfolgen in den Registern gespeichert werden, weshalb nach Löschen von mehr Daten die zuerst gelöschten Daten verloren gehen (es gibt kein Register 10).

Anwendungsbeispiele in Verbindung mit der Kopierfunktion:
 
"1p Eine neue Zeile unterhalb der aktuellen Zeile erzeugen und den Inhalt von Register 1 einfügen. Die angegebene Ziffer bestimmt das gewählte Register (mit "5p" würde der Inhalt von Register 5 übertragen werden).  
"1pu Alle Registerinhalte auf dem Bildschirm anzeigen lassen und anschliessend wieder löschen.  
  Diese Kommandofolge scheint zunächst nicht sonderlich nutzbringend zu sein. Tatsächlich wird der Nutzen erst nach Eingabe des Punkt-(.)Befehls sichtbar, da mit jedem eingegebenen Punkt entweder der gerade angezeigte Inhalt gelöscht oder der Registerzähler um eins erhöht und der Inhalt des nächsten Registers angezeigt wird.  
  Gleichzeitiges bearbeiten mehrerer Dateien nach oben (Seitenanfang)
:e <Datei> In der aktiven Editor-Session wird die angegebene Datei in den Arbeitsspeicher geladen, wenn die vorher bearbeitete Datei keine Änderung erfuhr oder bereits mit :w gespeichert wurde.  
:e!<Datei> Unbedingt Datei laden. Nicht gespeicherte Änderungen in der bisher bearbeiteten Datei gehen verloren.  
:e# Die Datei laden, welche in der laufenden Session vor der derzeit aktuellen Datei bearbeitet wurde.  
:e +<Datei> Benannte Datei laden, Cursor an deren Ende positionieren.  
:e +<n> <Datei> Benannte Datei laden, Bildschirminhalt beginnt bei Zeile n.  
:e +/<Zeichenfolge> <Datei> Benannte Datei laden, Darstellung wird um Zeichenfolge herum aufgebaut (wenn möglich erscheint Zeichenfolge in Bildschirmmitte).  
:e! Das Original der derzeit bearbeiteten Datei nochmals laden. Vorgenommene Änderungen werden verworfen.  
:n Die nächste, beim Aufruf des Editors auf der Kommandozeile angegebene Datei laden. Sollte die bisher bearbeitete Datei geändert worden, aber noch nicht mit :w gespeichert worden sein, erscheint eine Fehlermeldung.  
:n! Ohne Rücksicht auf vorgenommene Änderungen in der momentan aktuellen Datei die nächste, beim Aufruf des Editors auf der Kommandozeile angegebene Datei laden. In der aktuellen Datei gehen etwaige Änderungen verloren.  
:r <Datei> Inhalt der benannten Datei unterhalb der aktuellen Zeile einfügen.  
Suchen, Ersetzen
::: Starten des Editors Aufrufen ::: Verlassen des Editors Beenden ::: Speichern Speichern ::: Positionieren des Cursors Cursorbewegung ::: Blättern auf dem Bildschirm Blättern nach oben (Seitenanfang)
::: Editieren - Einfügen, Formatieren, ... Editieren ::: Sonderzeichen Sonderzeichen ::: Optionen, Einstellungen Optionen ::: Shell Commands Shell
Achtung! Sonderzeichen in zu suchenden Zeichenfolgen sind mit \ als normaler Text zu deklarieren. Andernfalls werden sie ihrer Bedeutung entsprechend ausgewertet.

Viele vi-Versionen bieten die Möglichkeit, vollständige reguläre Ausdrücke (regular expressions) bei den Such- und Ersetzungsfunktionen zu nutzen. Darauf wird hier nicht weiter eingegangen, da es den Rahmen schlichtweg sprengen würde.
 
  Suchen  
/<Begriff> Den Dateiinhalt in Vorwärtsrichtung nach dem nächsten Auftreten von Begriff durchsuchen. Sollte die Option Ringsuche (ws) aktiv sein, dann wird die Suche ggf. vom Dateianfang ausgehend fortgesetzt.
Wird Begriff nicht gefunden, so erscheint ein entsprechender Kommentar.
 
/ Den letzten Befehl zur Vorwärtssuche wiederholen.  
?<Begriff> Den Dateiinhalt in Rückwärtsrichtung nach dem nächsten Auftreten von Begriff durchsuchen. Sollte die Option Ringsuche (ws) aktiv sein, dann wird die Suche ggf. vom Dateiende ausgehend fortgesetzt.
Wird Begriff nicht gefunden, so erscheint ein entsprechender Kommentar.
 
? Den letzten Befehl zur Rückwärtssuche wiederholen.  
n Den letzten Suchbefehl wiederholen (unabhängig von Suchrichtung).  
<n>f<Zeichen> In der aktuellen Zeile vorwärts nach Zeichen Zeichen suchen. Der Cursor wird auf dem gefundenen Zeichen positioniert.

Die Angabe einer Zahl n ist optional (keine Angabe = erstes Auftreten). Durch Angabe von n wird bestimmt, wie oft gesucht werden soll.
 
<n>F<Zeichen> Wie f<Zeichen>, jedoch rückwärts.  
<n>t<Zeichen> Wie f<Zeichen>, der Cursor wird jedoch vor dem gefundenen Zeichen positioniert.  
<n>T<Zeichen> Wie F<Zeichen>, der Cursor wird jedoch vor dem gefundenen Zeichen positioniert.  
; Wiederholung des letzten f-, F-, t- oder T-Befehls.  
, Wiederholung des letzten f-, F-, t- oder T-Befehls, wobei die Suchrichtung des ursprünglichen Befehls umgekehrt (invertiert) wird.  
^ Steht in Suchbegriffen für Zeilenanfang.  
$ Steht in Suchbegriffen für Zeilenende oder, wenn $ ohne weitere Zeichen als Suchbegriff angegeben wird, für Dateiende.  
<n>| Positioniere den Cursor in Spalte n. Die Angabe der Zahl n ist zwingend erforderlich (mandatory).  
[[ Suche nach der nächsten öffnenden geschweiften Klammer ({).  
]] Suche nach der nächsten schliessenden geschweiften Klammer (}).  
  Suchen und Ersetzen  
:s/<alt>/<neu>/ Suche einmal in der aktuellen Zeile nach dem ersten Auftreten von ><>alt> und ersetze dort <alt> durch <neu>.  
:s/<alt>/<neu>/g Suche in der aktuellen Zeile nach <alt> und ersetze alle Vorkommen von <alt> durch <neu> (g = global).  
:gs/<alt>/<neu>/g Suche in der aktuellen Datei nach <alt> und ersetze alle Vorkommen von <alt> durch <neu> (g = global).  
:<n>s/<alt>/<neu>/ Suche in der <n>-ten Zeile nach dem ersten Auftreten von <alt> und ersetze dort <alt> durch <neu>.  
:<m>,<n>s/<alt>/<neu>/ Suche einmal in den Zeilen <m> bis <n> nach dem ersten Auftreten von <alt> und ersetze dort <alt> durch <neu>  
:1,$s/<alt>/<neu>/g Suche in der aktuellen Datei nach <alt> und ersetze alle Vorkommen von <alt> durch <neu> (g = global).

Die Suche beginnt in Zeile 1 und geht bis zum Dateiende ($). Wegen g (= global) werden alle gefundenen Elemente ersetzt.
 
:s/<alt>// Suche einmal in der aktuellen Zeile nach dem ersten Auftreten von <alt> und lösche es (ersetze es durch nichts). Sollen alle Vorkommen von <alt> in der aktuellen Zeile gelöscht werden, so ist zusätzlich g am Ende des Befehls anzugeben.  
& Wiederhole den letzten Ersetzungsbefehl vom Typ :s....  
Sonderzeichen
::: Starten des Editors Aufrufen ::: Verlassen des Editors Beenden ::: Speichern Speichern ::: Positionieren des Cursors Cursorbewegung ::: Blättern auf dem Bildschirm Blättern nach oben (Seitenanfang)
::: Editieren - Einfügen, Formatieren, ... Editieren ::: Suchen und Ersetzen Suchen / Ersetzen ::: Optionen, Einstellungen Optionen ::: Shell Commands Shell  
  Zeichen mit besonderer Bedeutung  
% Im Befehlsmodus versteht das System darunter den Inhalt des Puffers der gerade bearbeiteten Datei (z.B.: :!% %.org).  
# Im Befehlsmodus wird dieses Zeichen durch den zuletzt in einem Kommando verwendeten Dateinamen ersetzt.  
#% Dient zum hin- und herschalten zwischen zwei gleichzeitig in Bearbeitung befindlichen Dateien.  
~ Dient auf dem Bildschirm als Symbol zur Anzeige von Zeilen, in denen die bearbeitete Datei keinen Text enthält.

Dieser Fall kann beispielsweise auftreten, wenn bei der Bearbeitung Zeilen gelöscht, der Bildschirm jedoch nicht aktualisiert wurde.
 
:l Im Befehlsmodus bewirkt es, dass alle in der aktuellen Zeile befindlichen Sonderzeichen (z.B. $ für Zeilenende) dargestellt werden. Bei mehr als 72 Zeichen in der Zeile wird diese umbrochen und der Umbruch am Zeilenende mit \ markiert. Control-Zeichen werden in der Form ^L dargestellt (^ steht fü [Ctrl]). Es handelt sich hierbei um echte Control-Sequenzen!  
Optionen, Einstellungen
::: Starten des Editors Aufrufen ::: Verlassen des Editors Beenden ::: Speichern Speichern ::: Positionieren des Cursors Cursorbewegung ::: Blättern auf dem Bildschirm Blättern nach oben (Seitenanfang)
::: Editieren - Einfügen, Formatieren, ... Editieren ::: Suchen und Ersetzen Suchen / Ersetzen ::: Sonderzeichen Sonderzeichen ::: Shell Commands Shell  
  Parameter zum Anpassen der Einstellungen  
  Einstellungen können sowohl auf Systemebene (wirken sofort beim Aufruf des Editors) oder während des laufenden Betriebs vorgenommen werden.

Beim Aufruf des Editors wird die Environment-Variable EXINIT geprüft und darin hinterlegte Parameter übernommen. Der entsprechende Eintrag muss in der profile-Datei der vom Benutzer verwendeten Shell (z.B. $HOME/.profile bei sh, $HOME/.login bei csh) stehen, die beim Login gelesen wird.

Zu beachten ist, dass bei Verwendung mehrerer profile-Dateien, welche beim Login nacheinander abgearbeitet werden, der letzte Eintrag gültig ist (vorherige Einträge überschreibt).

Die Syntax zum Einschalten einer Option bei Verwendung von sh lautet
EXINIT="set nu list";export EXINIT

Zum Ausschalten einer Option lautet sie bei Verwendung von sh
EXINIT="set nonu nolist";export EXINIT

Bei Verwendung von csh gilt entsprechend
setenv EXINIT "set nu list"

beziehungsweise
setenv EXINIT "set nonu nolist"

Das bedeutet, dass zum Einschalten die Option genannt wird, zum Ausschalten dieser Nennung no vorangestellt wird.

Im laufenden Betrieb muss mit in in den Befehlsmodus gewechselt werden. Die Syntax lautet dann

:set <OPTION> [=Zeichen]

Den Zusatz Zeichen benötigt man bei einigen Optionen, welche zusätzliche Parameter zulassen bzw. wahlweise Änderungen zulassen (z.B. ht, ts usw.). Änderungen, welche im laufenden Betrieb vorgenommen werden, gelten nur für die Dauer der aktiven Session.

:se <OPTION>
zeigt an, ob die genannte Option aktiviert ist.

:se all
zeigt die aktuellen Einstellungen aller Optionen an.
 
Option Beschreibung default nach oben (Seitenanfang)
se nolist Macht die List-Darstellung rückgängig.  
ai Im Einfügemodus wird bei den Kommandos a, c, und i jede Zeile entsprechend der vorherigen mit führenden Leerzeichen versehen (eingerückt). noai
ap Der Bildschirm wird automatisch neu aufgebaut, wenn eine Zeile gelöscht oder eingefügt wird. ap
aw Es wird immer der Arbeitsspeicherinhalt (Puffer) in die Originaldatei geschrieben, wenn der Editor verlassen oder eine neue Datei zur Bearbeitung geöffnet wird. noaw
bf Sämtliche Control-Zeichen werden aus der Datei entfernt. nobf
dir Verzeichnis, in welchem die Arbeitskopie bearbeiteter Dateien angelegt wird. dir=/tmp
eb Bei erkannten Bedienungsfehlern gibt der Editor zusätzlich ein akustisches Signal (^). noeb
ht Tabulatorabstände im Terminal. ht=8
ic Bei Suchvorgängen nicht auf Groß-/Kleinschreibung achten. noic
lisp Einrückungen nach LISP-Regeln vornehmen, Klammern nach entsprechenden Vorschriften behandeln. nolisp
list Dateiinhalt mit allen Sonderzeichen anzeigen. $ steht für Zeilenende, ^I für Tabulator. nolist
magic Sonderzeichen werden entsprechend berücksichtigt und nicht als reine Textzeichen gewertet. magic
mesg Es können Meldungen, die nicht vom Editor selbst stammen (z.B. mail), auf dem Bildschirm angezeigt werden. Nach setzen von nomesg können nur noch Meldungen angezeigt werden, die direkt vom Editor stammen. mesg
nu Zeilennummern werden angezeigt (kann wegen längerer Zeilen zu Zeilenumbrüchen führen). nonu
para Definition der Absatzgrenzen, die bei Befehlen mit geschweiften Klammern ({}) eingerichtet werden sollen. para
=IPLPPPQPP Llbp
prompt Das Zeichen erscheint bei mit : aufgerufenen Kommandos als Prompt auf dem Bildschirm. prompt
redraw Neuaufbau der Zeile, sobald ein Zeichen eingegeben wird. noredraw
remap Rekursive Abarbeitung von Makros remap
report Meldung ausgeben, wenn mehr als die angegebene Anzahl Zeilen durch ein Änderungskommando verändert werden. report=5
scroll Scroll-Bereich der Scroll-Befehle definieren. scroll=1/2
sections Definition der Grenzen bei den Befehlen [[ und ]]. sections
=SHNHH HU
sh Festlegung, welche Shell beim !-Kommando genutzt wird. sh=/bin/sh
sw Schrittweite des Tabulators einstellen. Gleichzeitig legt dieser Eintrag den Richtwert für den Sprung des Cursors bei den Befehlen < und > fest, wenn diese ohne vorangestellte Zahl eingegeben werden (z.B. 3<). Die Definition gilt auch bei der Option ai und [Strg]D-Befehlen im Einfügemodus sw=8
sm Anzeigehilfe beim Editieren von Programmen: Bei Eingabe von Klammern des Typs ) oder } wird die als zugehörig erkannte, öffnende Klammer für ca. 1 Sekunde hell unterlegt dargestellt. nosm
ts Tabulatorposition in der Zeile festlegen. ts=8
term Der Inhalt der Environment-Variablen TERM wird zur Definition des Terminaltyps herangezogen. Der zu diesem Namen gehörende Eintrag wird in /etc/termcap gesucht. Sollte kein passender Eintrag gefunden werden, dann schaltet der Editor in einen Einzeilenmodus, welcher keine spezielle Terminalanpassung benötigt. TERM
terse Fehlermeldungen in Kurzform anzeigen. noterse
warn Fehlermeldung anzeigen, wenn eine geänderte Datei vor Eingabe eines !-Befehls nicht gespeichert wurde. Der Inhalt des Arbeitsspeichers wird nicht geändert warn
window, w300
w1200, w9600
In Abhängigkeit von der Baudrate die Anzahl der Zeilen pro Bildschirmseite auf 8, 16 oder die Zahl der im System selbst (nicht im Editor) festgelegten Anzahl von Bildschirmzeilen einstellen. meist >= 1200
ws In den Such-Modi / und ? die Ringsuche über Dateianfang bzw. -ende hinweg aktivieren. ws
wm Akustisches Signal ausgeben, wenn hinter Spalte wm noch ein Zeichen eingefügt werden soll. wm=0
wa Ohne vorherige Prüfung in Dateien schreiben. nowa
Shell-Kommandos
::: Starten des Editors Aufrufen ::: Verlassen des Editors Beenden ::: Speichern Speichern ::: Positionieren des Cursors Cursorbewegung ::: Blättern auf dem Bildschirm Blättern nach oben (Seitenanfang)
::: Editieren - Einfügen, Formatieren, ... Editieren ::: Suchen und Ersetzen Suchen / Ersetzen ::: Sonderzeichen Sonderzeichen ::: Optionen, Einstellungen Optionen  
     
:!Befehl Befehl ausführen und entsprechende Meldung ausgeben (die Meldung wird nicht in die bearbeitete Datei übernommen). Der Bildschirminhalt muss mit [Ctrl]l wieder hergestellt werden.  
:!! Wiederholt das zuletzt eingegebene Unix-Kommando.  
:sh :csh Neue (C-)Shell starten, in welcher ohne Einschränkung gearbeitet werden kann. Der Editor läuft so lange im Hintergrund, bis die neu gestartete Shell mit [Ctrl]D oder [Ctrl]Z beendet wird.  
:r !Befehl Den Rückgabewert des Shell-Kommandos Befehl an aktueller Stelle in Datei einfügen.  
!Befehl Der eingegebene Befehl ersetzt den ursprünglichen Pufferinhalt der gerade bearbeiteten Datei.