geschichte / aufruf:
``vi'', /V-I/. man spricht es wie ``v'' und dann ``i'' im
englischen,
oder auch deutschen aus. vi steht fuer ``visual-interface'' und hat seine
wurzeln in
fruehen versionen von Berkeley UNIX (auch BSD). spaeter wurde
der editor von allen unices
adaptiert/portiert da er sehr praktisch und
schlank ist. ``vi'' hat weiters sehr viele
verwande/abgewandte editoren
wie nvi, vim (vi-iMproved), elvis, ... ... wir wollen in dieser CD
aber
nur plain-vi durchgehen weil das ohnehin fuer alle versionen gilt.
``vi'' ist/sollte auf
jedem ausgelieferten Linux/UNIX vorhanden sein -
dies ist einer der groessten vorteile dieses editors.
auch in situationen
wo andere editoren nicht verfuegbar sind ist ``vi'' normalerweise zu ge-
brauchen. (``vi'' braucht ein funktionierendes terminal wie VT100 oder was
anderes, wohingegen ``ex''
auch mit dumb-terminals verwendbar ist -> zeilen-
orientiert). ex/vi sind an und fuer sich dasselbe
programm das nur
verschieden aufgerufen wird.
der syntax zum starten von vi sieht meist so
aus:
$ vi filename
oder
$ vi filename1 filename2 filename3
[...]
hier kann natuerlich auch file-globbing verwendet werden. z.b. sehr nuetz-
lich sind
aufrufe wie:
$ vi *.c
was z.b. alle files mit der endung .c aufmacht (der reihe nach).
umschalten
kann man dann im editor z.b. mit ``:n (next file)''.
vi hat auch einen sog.
recovery-mode der in den meisten vi-implementationen
mit -r zu erreichen ist. recovery hilft z.b. wenn
waehrend einer editor-
session der server abstuerzt, rebootet wird, usw. damit laesst sich die
abge-
brochene editor-session wieder retten.
z.b.
$ vi -r
vi: no files
to recover.
Einfaches Editieren:
nachdem nun vi mit einem textfile
(oder einfach nur vi ohne was -> leeres
text-dokument) gestartet wurde steht man vor einem bildschirm
der aussieht
wie:
[] <-- Cursor
~
~
~
~
~
/tmp/vi.Ul1449: new file: line 1
das sieht alles ein wenig cryptisch aus zu beginn - ganz unten haben
wir
eine statuszeile die nach dem aufruf das aktuelle file und die position
im file zeigt. (kann
man beim editieren mit ^G auch anzeigen lassen). in
dieser statuszeile werden auch befehle eingegeben vom
benutzer.
ganz wichtig bei ``vi'' ist dass es 2 modi gibt. einen command-mode und
einen
insert-mode. umschalten kann man mit <ESC> (escape-taste, auf den
meisten keyboards links oben). ist
man sich unsicher in welchem modus man
ist am besten einmal <ESC> druecken. dann ist man mit
sicherheit im
command-mode.
befehle bestehen in ``vi'' meistens aus einem einzelnen buchstaben.
hier
moechte ich die wichtigsten kurz erklaeren. befehle funktionieren generell
nur im command
mode da man im insert-mode eben nur zeichen einfuegt.
cursorbewegung:
h bewege
cursor ein zeichen nach links
j bewege cursor eine zeile nach unten
k bewege cursor eine zeile
nach oben
l bewege cursor ein zeichen nach rechts
bei manchen Linux/UNIX-arten funktionieren
auch die sog. cursor-tasten
(pfeile). man sollte aber generell versuchen mit den oben erklaerten
bewegungsbefehlen zu arbeiten weil das immer und ueberall funktioniert.
man kann unter ``vi'' auch die
anzahl der folgenden befehle angeben.
z.b. wuerde funktionieren: 5j <- bewegt den cursor 5 zeilen nach
unten
oder:
weitere wichtige befehle sind:
/text<return-taste>
sucht
nach dem string ``text'' und bewegt den cursor
an die erste stelle des gefundenen wortes. tut
nichts
wenn nichts gefunden wird.
a ``append'' - heisst soviel wie fuegt text NACH dem
cursor
ein.
i ``Insert'' - fuegt text for dem aktuellen cursor ein.
o macht eine
neue zeile unter der zeile in der der cursor
steht und schaltet auf insert-modus um.
hierbei sei
erwaehnt dass nachdem man einen der insert befehle a, i oder
o verwendet hat und fertig mit texttippen ist
man mit <ESC> in den command-
mode umschalten sollte.
wichtige befehle zum
textkopieren:
yy kopiert die zeile in der sich der cursor befindet in den
zwischenbuffer.
achtung: auch hier geht natuerlich z.b.
5yy um 5 zeilen in den zwischenbuffer zu kopieren!
p
kopiert die zeile die im zwischenbuffer gespeichert ist
nach der zeile wo grad der cursor
steht.
wichtige befehle zum loeschen von text:
dd loescht eine zeile. auch hier gilt
z.b. 10dd um 10 zeilen
zu loeschen.
x loescht das aktuelle zeichen in der
cursor-position.
befehle zum abspeichern/quitten:
speichern:
:w<return-zeichen>
schreibt das file mit dem aktuellen namen (den, den man
beim aufruf von
``vi'' angegeben hat.
:w file_name<return-zeichen>
schreibt das aktuelle text-document
in ein neues file
namens ``file_name''. kann auch zum ueberschreiben von
dateien genommen
werden.
ausstieg:
:q<return-zeichen>
versucht vi zu beenden - klappt aber nur
wenn es keine
nichtgeschriebenen veraenderungen in der datei gibt - wurde
was veraendert muss :w
um zu speichern verwendet werden
oder:
:q!<return-zeichen>
steigt aus egal ob
gespeichert wurde. beendet vi in jedem
fall. vielleicht wichtig vor allem fuer anfaenger ist die
sequenz: <ESC>:q! um ggf. von insert->command-mode zu
schalten und vi zu beenden.
(Note:
diese befehle funktionieren alle auch bei ex, nur sieht man
eben immer nur die aktuelle zeile des
dokuments.)
weitere befehle zum navigieren in
groesseren datein:
:<num>
geht zu zeilennummer <num>.
G geht zum dateiende.
1G geht zum dateianfang. kann auch
mittels :0 erlangt
werden.
^ geht zum zeilenanfang
$ geht zum aktuellen
zeilenende
^F (forward) geht eine seite nach vorn
^B (backward) geht eine seite zurueck
^U (up) geht eine halbe seite zurueck
^D (down) geht eine halbe seite nach vorn
wurde ``/text''
verwendet um nach einem textbruchstueck in einer datei
zu suchen ist es oft praktisch wiederkehrende
``matches'' zu finden. d.h.
ich will einfach weitersuchen zum naechsten ``text''. dies kann man
bei
``vi'' mit den befehlen
n (sucht vorwaerts nach dem letzten suchbegriff)
und
N (sucht rueckwaerts nach dem letzten suchbegriff)
erreichen.
``vi'' ist ein sehr
maechtiger und umfassender editor mit dem man eigentlich
fast alles mit textdateien machen kann. die
befehle die wir hier gehoert
haben sollten an und fuer sich lagen zum einfachen editieren. wer mehr
will
-> einfach einen kurzen blick in die manpage werfen oder die referenzen am
ende dieses
CD's ansurfen.
EXERCISES:
1.) starten/tippen/schreiben/aussteigen von vi anhand einer
neuen
datei.
2.) lerne ein wenig mit vi umzugehen indem du ein schon vorhandenes
textfile mit ``cp'' kopierst und die kopie dann oeffnest, ver-
aenderst und dann abspeicherst.
hint: du kannst auch den befehl ``u'' fuer undo last command oder
``U'' fuer undo line
testen.
_______________________________________________
CD ist ein service von
SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________