Kurzanleitung fuer den vi-Editor


Die basic-ex-Kommands:

:q			Beenden
:q!			Beenden ohne Speichern
:x			Speichern und Beenden 
:w			Speichern

Die basic-vi-Kommands:

i			Text an der aktuellen Position einfuegen
I			Text am Zeilenanfang einfuegen
a			Text an der aktuellen Position anfuegen
A			Text am Zeilenende einfuegen
o			Unterhalb des Cursors eine neue Zeile einfuegen
O			Oberhalb des Cursors eine neue Zeile einfuegen
S			Zeile loeschen und Text ersetzen
R			Vorhandene Zeichen mit neuem Text ueberschreiben
J			Aktuelle und folgende Zeile zusammenfuehren
~			Gross-/Kleinschreibung umsetzen
.			Letzte Aktion wiederholen
u			Letzte Aenderung zuruecknehmen
U			Zeile in ihren urspruenglichen Zustand zurueckversetzen

Schnelle Bewegungen:

N			Suche in umgekehrter Richtung wiederholen
/			Suche wiederholen, vorwaerts
?			Suche wiederholen, rueckwaerts
fx			Cursor auf naechstes Vorkommen des Zeichens x in der 
			aktuellen Zeile
Fx			Cursor auf voriges Vorkommen des Zeichens x in der 
			aktuellen Zeile
tx			Cursor auf das Zeichen vor dem naechsten Vorkommen des 
			Zeichens x in der aktuellen Zeile
;			Letzten Suchbefehl in gleicher Richtung wiederholen
,			Letzten Suchbefehl in umgekehrter Richtung wiederholen
nG			Cursor in Zeile n
G			Cursor an Dateiende
``			Cursor an die zuletzt editierte Stelle zurueck
''			Cursor auf das erste Zeichen der zuletzt editierten 
			Zeile
^G			Aktuelle Zeile anzeigen
w			Wortweise vorwaerts
b			Worweise rueckwaerts
)			Ende des Absatzes
(			Anfang des Absatzes

Befehlszeilenoptionen

+n datei		Oeffnet datei bei der Zeilennummer n
+datei			Oeffnet datei bei der letzten Zeile
+/muster datei		Oeffnet datei beim ersten Auftreten von muster
-c befehl datei		Fuehrt befehl nach Oeffnen der Datei aus
-R			Oeffnet Datei im Lesemodus
-r			Stellt Dateien nach einem Systemabsturz wieder her

Puffernamen

1-9			Enthalten die letzten neun geloeschten Texte
a-z			Benannte Puffer zur freien Verwendung

Wiederherstellen von 1-9: 2p z.B. holt den Inhalt der vorletzten Loeschung wieder zurueck und fuegt ihn hinter dem Cursor wieder ein.
Benannte Puffer beschreiben: Zuerst den Puffernamen angeben, anschliessend die Anzahl der Zeilen/Woerter/Zeichen/etc. und zuguterletzt den Befehl. Z.B.:

a5dd			Loesche die aktuelle und die 4 folgenden Zeilen in den 
			Puffer a
dyy			Kopiere aktuelle Zeile in den Puffer d

Ex-Befehle

Anzeigen und erste Ersetzungssteps:

:1p			Erste Zeile der Datei anzeigen (das p kann man auch 
			weglassen)
:1,3			Erste drei Zeilen anzeigen
:1s/fuzzi/bla/		Ersetze in Zeile 1 fuzzi durch bla

Bewegungscommands:

d oder delete		Zeilen loeschen
m oder move		Zeilen verschieben
t, co oder copy		Zeilen kopieren

Beispiele:

:3,18d			Loesche Zeilen 3 bis 18
:160,224m23		Verschiebe Zeilen 160 bis 224 hinter Zeile 23
:23,29co100		Kopiere 23 bis 29 hinter 100

Praktisches:

:set nu			Zeige alle Zeilennummern an
:set nonu		Verstecke alle Zeilennummern
:1,10#			Von Zeile 1 bis 10 Zeilennummern anzeigen
:=			Zeige die Gesamtzahl der Zeilen an
:.=			Zeige die Nummer der aktuellen Zeile an
:/muster/=		Zeige die Nummer der ersten Zeile, die muster enthaelt
:ic			Bei Suchmustern Gross-/Kleinschreibung ignorieren
:noic			Ignoriere obiges
:set all		Zeige alle Optionen an
:ab abk Ausdruck	Die Abkuerzung abk fuer Ausdruck verwenden

Unix Befehle ausfuehren

:!befehl		Fuege Ausgabe von Befehl ein (z.B. :!date)
:r!befehl		Gleiches wie oben
!)befehl		Text mit vi filtern (z.B. !) dann tr '[a-z]' '[A-Z]'
			bedeutet Abschnitt nach Cursor in Grossbuchstaben
			verwandeln

Mehrere Dateien oeffnen

$ vi datei1 datei2	Rufe zunaechst datei1 auf, wenn diese beendet wird rufe 
			datei2 auf
:args			Zeige die Argumentliste auf
:e			Neue Datei oeffnen
:e!			Verwirft saemtliche Aenderungen in der aktuellen Datei
^^			D.h. STRG+^: Zwischen Dateien umschalten

Suchen:

Mittels / kann man einen Suchstring eingeben. Achtung: bei Sonderzeichen (/,$, usw.) einen Backslash vor dem Sonderzeichen.
Metazeichen:

.			Jedes beliebiges Zeichen
*			Null oder mehr Vorkommen des davorliegenden Zeichens
^			Zeilenanfang
$			Zeilenende
\			Naechstes Zeichen ist ein gewoehnliches Zeichen, 
			verliert seine spezifische Bedeutung
[ ]			Erkennt ein beliebiges der in Klammern angegebenen 
			Zeichen. [AB] z.b. heisst sowohl A als auch B
~ 			Regulaerer Ausdruck, der bei letzter Suche verwendet 
			wurde

Ersetzen:

:s/[Suchstring]/[Ersatzstring]/		In der Zeile Ausdruck durch anderen 
					ersetzen
:[Startzeile],[Endzeile]s/[Suchstring]/[Ersatzstring]/g 
					Innerhalb eines Bereichs Suchen und 
					Ersetzen
:%s/[Suchstring]/[Ersatzstring]/g	Innerhalb eines ganzen Dokuments einen 
					Ausdruck durch einen anderen ersetzen
:g/[Suchstring]/s/[Suchstring]/[Ersatzstring]/g
					Diesselbe Aktion wie oben nur komplexer
					allerdings auch logischer
:g/[Suchstring]/s//[Ersatzstring]/g	Wie oben

Loeschen:

Aktuelle Zeile loeschen: dd

Von Zeile bis Zeile alles loeschen:

:[Startzeile],[Endzeile]d

Jene Zeilen loeschen, die einen bestimmten String enthalten:

:%g/[String]/d

In einem bestimmten Bereich jene Zeilen loeschen, die einen bestimmten String enthalten:

:[Startzeile],[Endzeile]g/[String]/d

Zwischen Muster1 und Muster2 loeschen:

:/muster1/,/muster2/d

$Id: vi.html,v 1.5 2002/06/24 11:03:23 juergen Exp $