IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Anwendungssoftware - Der Editor Vi



Der Editor Vi

kurzeinfuehrung fuer den editor vi / ex


Autor: Franz Schaefer (mond)
Datum: 23-01-2002, 19:28:36
Referenzen: man vi''
http://www.uwsg.iu.edu/edcert/session3/editors/vi.html
http://www.thomer.com/thomer/vi/vi.html
http: //www.ora.com/catalog/vi6/
Schwierigkeit: Anfänger
Ansichten: 4277x
Rating: 6 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



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
_______________________________________________



paedubucher
Professonial
Beitrag vom:
17-08-2006, 23:31:38

vimtutor

Wer ein freies Unix benützt, der sollte mal in der Konsole "vimtutor" eingeben. Ein wunderbares, interaktives Tutorial, das einem an die wichtigsten Kommandos heranführt.
Für Windows gibt es dieses Tutorial auch, es wird allerdings über ein Batch-File gestartet...

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04512
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06248
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0