Kurzrefenenz des Unix Editors vi

Die Arbeitsweise des vi

Der Editor vi kann in drei verschiedenen Modi arbeiten.

Arbeitsweise VI (Grafik)


vi-Editor
 
 

Allgemeines

Mit diesem UNIX-Editor steht dem Benutzer ein äußerst mächtiges Werkzeug zu Verfügung, mit dem ASCII-Textdateien erstellt und verändert werden können.


Beispiel:     vi [+]Datei(en)
vi dat1  Ruft den Editor auf und lädt die Datei dat1.
Falls diese nicht existiert wird sie angelegt.
vi dat1 dat2 … Ruft den Editor auf und lädt nacheinander die einzelnen Dateien
vi + dat1 Ruft den Editor auf und lädt die Datei dat1.
Der Cursor wird an das Dateiende gesetzt.
Vor und nach dem '+'-Zeichen muß je ein Leerzeichen stehen

Eingabemodus, Bewegen im Text, Korrekturen

Nach dem Aufruf befindet man sich im Kommandomodus.
Zum Editieren der Datei ist es notwendig, in den Eingabemodus umzuschalten.
Mit der Esc-Taste kommt man wieder zum Kommandomodus zurück.

Kommandos, um in den Eingabemodus zu gelangen (nur im Kommandomodus):


a Anhängen an die aktuelle Position
A Anhängen an Zeilenende
i Einfügen an der aktuellen Position
I Einfügen am Zeilenanfang
R Überschreibmodus

 Bewegen im Text (nur im Kommandomodus):


# zum Zeilenanfang
$ zum Zeilenende
G zur letzten Zeile der Datei
nG in die Zeile n springen (z.B. 12G)
strg+f vorwärtsblättern
strg+b seitenweise rückwärtsblättern
h Curser nach links
l Curser nach rechts
k Curser nach oben
j Curser nach unten
w wortweise nach rechts
b wortweise nach links
H zur ersten Zeile im Editorfenste
L zur letzten Zeile im Editorfenster


Korrekturen, Löschen, Puffer (nur im Kommandomodus):

Zeichen:

x ein Zeichen unter dem Curser löschen
6x 6 Zeichen ab dem Curser löschen
6X 6 Zeichen vor dem Curser löschen
rl ersetzt das Zeichen unter dem Curser durch ein l
~ ersetzt Klein- gegen Großbuchstaben (mit jedem Tildedruck einen Buchstaben)

Zeilen-, Puffer- und Löschkommandos

Zeilen:

o fügt eine leere Zeile nach der aktuellen Zeile ein (oft muß mit Strg + l der
Bildschirm neu aufgebaut werden!)
O fügt eine leere Zeile vor der aktuellen Zeile ein
d$ löschen bis zum Zeilenende
D löschen bis zum Zeilenende
d0  löscht von der aktuellen Position bis Zeilenanfang
dG  löscht von der aktuellen Position bis Dateiende
U aktive Zeile wiederherstellen

Puffer füllen

Y oder yy aktuelle Zeile in den Puffer kopieren (ohne zu löschen)
15yy 15 Zeilen in den Puffer kopieren (ohne zu löschen)
dd löscht die aktuelle Zeile und lädt sie in den Puffer
5dd löscht die nächsten 5 Zeilen und fügt sie in den Puffer ein
"a20dd 20 Zeilen löschen und in den Puffer a einfügen

Zeichen aus dem Puffer einfügen

p und P Die Zeichen aus dem aktuellen Puffer vor (P) oder nach (p) der aktuellen Zeile einfügen
"ap Puffer a vor (P) oder nach (p) der aktuellen Zeile einfügen
J verbindet die folgende mit der aktuellen Zeile
strg+w  löscht das zuletzt eingegebene Wort (im Eingabemodus)

Löschen im Kommandomodus

x löscht das aktuelle Zeichen
dd löscht eine Zeile und fügt sie in den Puffer ein
D löscht von Curser bis Zeilenende
d12 löscht die aktuelle und 12 weitere Zeilen
u letztes Kommando rückgängig machen
rl ersetzt das aktuelle Zeichen durch ein l
R Überschreibmodus

Bildschirm neu aufbauen

strg+l Bei Störungen, z.B. durch eine Benachrichtigung, wird der Bildschirm neu aufgebaut.
ZZ speichern und beenden


Der Zeilenmodus

Der Zeilenmodus wird durch die Kombination Esc und : eingeleitet

Arbeitsweise/Modus festlegen

Esc : set all Alle Optionsnamen anzeigen lassen
set Optionsname setzen einer Option
set noOptionsname rücksetzen einer Option
set Option=Wert Option mit Wertzuweisung setzen (z.b. set tabstop=4)

Wichtige Optionen:

number Zeilennummern anzeigen
autoindent Die Einrückungen nach einem Return beibehalten
showmode Anzeigen des Editiermodus rechts unten
tabstop=n Anzahl Leerstellen für Tabulatorzeichen angeben

Beispiel:   set number

Speichern und beenden

:w Dateiname speichern unter dem angegebenem Namen
:wq speichern und beenden
:r Datei2 Der Inhalt von Datei2 wird an der aktuelle Curser-Position
eingesetzt.
:! Shcommand das angegebene Kommando ausführen und zum vi zurückkehren
:r!Shcommand Die Ausgabe des Kommandos wird an die aktuelle Position geschrieben.
:f aktuellen Dateiname und Zeilennummer ausgeben
:e datei neue Datei laden
:e # zurück zur ursprünglichen Datei
:q! vi verlassen ohne zu speichern
:wq! speichern einer schreibgeschützten Datei (nur als root)

 Suchmechanismen im Zeilenmodus

/Muster Suche vorwärts nach angegebenem Muster
?Muster Suche rückwärts nach angegebenem Muster
/^wort ein Wort am Zeilenanfang suchen
/^$ nach Leerzeilen suchen (zw. Anfang (^)und Ende ($) stehen keine Zeichen)

Durch Eingabe eines n (vorwärts) oder N (rückwärts) kann die Suche fortgeführt werden.

Beispiel: /[hk]und sucht nach hund und kund
 

Suchen/Ersetzen (Beispiel):

1,10s/text/textersatz/g

In den Zeilen 1 - 10 wird die Zeichenkette text durch textersatz ausgewechselt.
Durch das /g am Ende der Zeile werden alle Wörter in der Zeile ersetzt, nicht nur das Erste.
Wird anstelle von 10 ein $-Zeichen verwendet, werden Ersetzungen im gesamten Text vorgenommen.
auch %s/text/textersatz/g
Ohne Bereichsangebe (1,10) werden nur in der aktuellen Zeile Ersetzungen durchgeführt.
 



Hilfe (bei Linux)

Esc : h Hilfedatei laden

Esc : q Hilfedatei schließen


1999 by Jürgen Glowka E-Mail: it at glowka dot de http://glowka.de