|
Regionales Rechenzentrum |
|
Unix Editor vi
UNIX liefert als Standardeditor den vi. Somit ist der vi auf
jeder Unixplattform verfügbar. Allerdings ist der vi sehr
gewöhnungsbedürftig. Er vermittelt halt das feeling der 70'er.
Aufruf: vi filename
view filename [nur lesend]
Damit wird die Datei in den Editorbuffer geladen und die ersten
23 Zeilen auf dem Bildschirm ausgegeben, falls vorhanden, sonst
wird sie neu angelegt.
Der vi kennt zwei Modi, den Kommandomodus und den Insertmodus.
Nach Aufruf befindet man sich im Kommandomodus. Um einen Text
eingeben zu können, muß man als erstes in den Insertmodus wechseln!
In den Insertmodus gelangt man durch Eingabe von i, zurück
in den Kommandomodus mit der ESC-Taste.
Einige der folgenden Kommandos sind auch bei der Benutzung des
'Histories' (zurückholen und editieren alter Kommandos) sinnvoll
einsetzbar. Näheres hierzu finden Sie am Ende des Textes.
Die wichtigsten Kommandos:
--------------------------
:wq Datei sichern und Editor verlassen
:q! Editor verlassen ohne Abspeichern
:w file Datei nach file schreiben
:w! file Datei nach file schreiben, falls vorhanden
überschreiben
:z1,z2 w file Zeilen z1 bis z2 nach file schreiben
:r file file in Editorbuffer einlesen und an aktueller
Cursorposition einfügen
:n next, die nächste Datei aus der Aufrufliste
wird in den Editorbuffer geladen
i text 'ESC' insert, Text vor Cursorposition einfügen
a text 'ESC' append, Text hinter Cursorposition einfügen
A text 'ESC' Text am Zeilenende anfügen
o text 'ESC' open, neue Zeile hinter aktueller Zeile einfuegen
R text 'ESC' replace, nachfolgenden Text überschreiben
C text 'ESC' change, nachfolgenden Text bis Zeilenende ersetzen
ctrl v L im Insertmodus einfügen von Steuerzeichen z.B. ^L
[Alt]-[nnn] ASCII-Zeichen nnn, z.B. [Alt]-[065] -> A
\ Wirkung des nachfolgenden Sonderzeichens wird
aufgehoben. Dies kann z.B. beim suchen wichtig sein.
r c replace,ersetze aktuelles Zeichen durch c
x lösche aktuelles Zeichen
cw change word, der Rest des aktuellen Wortes wird ueberschrieben
D lösche Rest der Zeile
dd lösche aktuelle Zeile
dw lösche aktuelles Wort
:z1,z2 d lösche den Bereich Zeile z1 bis z2
ctrl g liefert aktuelle Zeilennummer und Länge der Datei
u undo, mache letzten Befehl rückgängig
[n]Y yank, es werden n Zeilen ab der aktuellen in den Buffer ge-
schrieben. Wird n nicht angegeben, wird die akt. Zeile gebuffert.
yw Wort wird ab Cursorposition gebuffert
p paste, schreibt den Bufferinhalt hinter aktuelle Cursorposition
J join, die aktuelle und die nachfolgende Zeile werden zu einer
verknüpft
:s/alt/neu substitute,in aktueller Zeile erstes alt durch neu
ersetzen
:s/alt/neu/g in aktueller Zeile alle alt durch neu ersetzen
:%s/alt/neu/g in der ganzen Datei alt durch neu ersetzen
:%s/alt/neu/c in der ganzen Datei alt durch neu nach Rückfrage er-
setzen,bei Eingabe von y[CR] wird ersetzt, sonst nicht
/suchstring sucht ab aktueller Cursorposition nach string
?suchstring sucht analog rückwärts
n next, wiederhole das letzte Suchkommando
Cursorpositionierung:
---------------------
Die Cursortasten sollten funktionieren, aber auch:
h Cursor nach links
l Cursor nach rechts
j Cursor nach unten
k Cursor nach oben
ctrl F eine Seite vorwärts blättern
ctrl B eine Seite rückwärts blättern
^ Anfang der aktuellen Zeile
$ Ende der aktuellen Zeile
:[n] Anfang von Zeile n
:% Anfang der letzten Zeile
:!kommando Ausführen eines Shell-Kommandos innerhalb des vi's
!!kommando Ausführen eines Shell-Kommandos, Ausgabe in den Text
Set-Optionen
------------
:set all listet sämtliche momentanen Einstellungen
:set nu automatische Zeilennumerierung einstellen
:set nonu Zeilennumerierung ausstellen
:set showmode Anzeige des Insertmodus
:set list Zeigt versteckte TABs etc. an.
Viele weitere Funktionen finden Sie in den Manpages: 'man vi'.
Der Bonbon: Benutzung des Histories in der ksh
----------------------------------------------
Mit dem Kommando
$set -o vi
können Sie mit den vi-Kommandos in Ihren letzten (128) Unix-
Befehlen blättern und diese auch editieren. Diesen Befehl tragen
Sie vorteilhafterweise in die Datei .kshrc ein. In Ihrem .profile
sollten Sie dann aber auch folgende Zeile mit aufnehmen:
export ENV=.kshrc
Die Cursortasten sollten Sie beim editieren alter Kommandos nicht benutzen!
ESC in den 'Kommandomodus' schalten
k einen Befehl zurück in die Vergangenheit (- geht auch)
j einen Befehl vor (+ geht auch)
/suchstring letzter Befehl, in dem 'suchtring' vorkommt
l,h,i,x,r,R,.. wie vom vi her gewohnt
^C eine mißlungende Unixzeile abwürgen
Mit ESC k erhalten Sie also den letzten, mit
ESC k k den vorletzten Befehl.
Startseiten:
Server -
Software -
Unix -
CAMPUS-/public-Server