Files
FHC-Core/vilesci/admin/VI-Kurzreferenz.html
T
Gerald Simane 725e178014
2009-06-08 06:37:57 +00:00

451 lines
19 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0040)http://www.fh-wedel.de/~herbert/html/vi/ -->
<HTML><HEAD><TITLE>Herbert's Homepage: VI-Kurzreferenz</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content=HTML-Files name=keywords>
<META
content="vi, Elvis, Kurzeinführung,&#10; Kurzreferenz, Einführung, Referenz"
name=keywords>
<META content=Herbert name=Author><!--
Copyright (c): Herbert, FH Wedel
Note that this document is provided "as is",
WITHOUT WARRANTY of any kind either expressed or implied.
-->
<META content="MSHTML 5.50.4807.2300" name=GENERATOR></HEAD>
<BODY>
<h1>VI Einführung und Kurzreferenz</h1>
<DIV align=right><A href="http://www.fh-wedel.de/~herbert/html/index.html"
POSITION="">[eine Ebene höher]</A>&nbsp;<A
href="http://www.fh-wedel.de/~herbert/htdig/index.html" POSITION="">[Suchen]</A>
</DIV>
<P>
<TABLE width="100%">
<TBODY>
<TR>
<TD vAlign=top>
<H2>Inhalt</H2></TD>
<TD vAlign=top width="30%">
<DIV align=right><A name=at000
href="http://www.fh-wedel.de/~herbert/html/vi/#at001">[weiter]</A>
</DIV></TD></TR></TBODY></TABLE>
<UL>
<LI><A
href="http://www.fh-wedel.de/~herbert/html/vi/#einfuehrung">Einführung</A>
<UL>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#betriebsarten">VI
Betriebsarten</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#visualmode">Der Visual
Mode</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#exmode">Der Ex
Mode</A> </LI></UL>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#kommandos">Wichtige VI
Kommandos</A>
<UL>
<LI><A
href="http://www.fh-wedel.de/~herbert/html/vi/#konvention">Konvention</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#starten">Starten des
VI</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#beenden">Beenden des
VI</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#laden">Dateien
laden</A>
<LI><A
href="http://www.fh-wedel.de/~herbert/html/vi/#cursorbewegungen">Cursorbewegungen</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#eingeben">Text
eingeben</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#aendern">Text
ändern</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#loeschen">Text
löschen</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#zwischenablagen">Die
Zwischenablagen im VI</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#suchenersetzen">Suchen
und Ersetzen</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#bookmarks">Bookmarks
im VI</A>
<LI><A href="http://www.fh-wedel.de/~herbert/html/vi/#goodies">Sonstige
Goodies</A> </LI></UL></LI></UL><A name=einfuehrung>
<P>
<HR width="100%" noShade SIZE=1>
<TABLE width="100%">
<TBODY>
<TR>
<TD vAlign=top>
<H2>Einführung</H2></TD>
<TD vAlign=top width="30%">
<DIV align=right><A href="http://www.fh-wedel.de/~herbert/html/vi/#attop"
POSITION="">[Seitenanfang]</A> <A name=at001
href="http://www.fh-wedel.de/~herbert/html/vi/#at002">[weiter]</A>
</DIV></TD></TR></TBODY></TABLE></A><A name=betriebsarten>
<P>
<H3>VI Betriebsarten</H3></A>Der vi kennt drei Betriebsarten:
<OL>
<LI>Der <EM>visual mode</EM>, in dem jeder Tastendruck als Kommando
interpretiert wird. Dies ist die Standardbetriebsart des vi!
<LI>Der <EM>ex mode</EM>, in dem über die Kommandozeile komplexe Befehle, wie
z.B. Suchen und Ersetzen eingegeben werdne können.
<LI>Der <EM>input mode</EM>, in dem Text eingegeben werden kann. </LI></OL><A
name=visualmode>
<P>
<H3>Der Visual Mode</H3></A>Der Visual Mode ist wie gesagt die
Standardbetriebsart des vi, d.h., man befindet sich direkt nach dem Start des vi
darin. Aus allen anderen Betriebsarten kommt man jederzeit durch Drücken der
<EM>Escape</EM> Taste zurück.
<P>Die Idee dahinter ist, daß man, solange kein Text eingegeben wird, ohne Hilfe
von Maus oder erweiterter Tastatur (Pfeiltasten usw.) in der editierten Datei
durch Bewegen des Cursors, Springen und mit Hilfe von Bookmarks navigieren kann.
Das ermöglicht Arbeit mit einem sehr hohen Tempo und auch auf Terminals ohne
erweiterte Tastatur.
<P><A name=exmode>
<P>
<H3>Der Ex Mode</H3></A>Der Ex Mode dient dazu, auch komplexere Kommandos oder
Makros eingeben zu können, die durch jeweils einfache Tastendrücke im Visual
Mode so nicht möglich wären.
<P>Man erreicht den Ex Mode aus dem Visual Mode heraus und zwar durch Drücken
von ":". Ein Kommando im Ex Mode wird abgebrochen durch <EM>Escape</EM> oder
beendet durch <EM>Enter</EM>. <A name=inputmode>
<P>
<H3>Der Input Mode</H3></A>Der Input Mode dient zum Eingeben von Text. Hier
werden die normalen Tasten als einzugebende Buchstaben interpretiert. Andere
Befehle aus dem Visual Mode, die auf Tasten liegen, die so nicht druckbar sind,
wie z.B. <EM>Ctrl-F</EM> und <EM>Ctrl-B</EM> (<EM>PageDown</EM>und
<EM>PageUp</EM>), stehen weiterhin zur Verfügung.
<P>Der Input Mode kann durch verschiedene Visual Kommandos eingeleitet werden.
Mehr dazu unter <A href="http://www.fh-wedel.de/~herbert/html/vi/#eingeben">Text
eingeben</A>.
<P>Der Input Mode wird verlassen durch <EM>Escape</EM>, man landet somit wieder
im Visual Mode.
<P><A name=kommandos>
<P>
<HR width="100%" noShade SIZE=1>
<TABLE width="100%">
<TBODY>
<TR>
<TD vAlign=top>
<H2>Wichtige VI Kommandos</H2></TD>
<TD vAlign=top width="30%">
<DIV align=right><A href="http://www.fh-wedel.de/~herbert/html/vi/#attop"
POSITION="">[Seitenanfang]</A> <A name=at002
href="http://www.fh-wedel.de/~herbert/html/vi/#at003">[weiter]</A>
</DIV></TD></TR></TBODY></TABLE></A><A name=konvention>
<P>
<H3>Konvention</H3></A>Im Folgenden werden einige oft benutzte VI-Kommandos
aufgelistet. Fast alle dieser Kommandos sind <EM>Visual</EM> Kommandos.
<EM>Ex</EM> Kommandos werden durch das <EM>":"</EM> am Anfang gekennzeichnet.
<P>Manche (meist <EM>Visual</EM>) Kommandos haben noch ein <EM>[Count]</EM>
vorangestellt. Das heißt, daß das Kommando normalerweise einmal, bei einer
vorher gedrückten Zahl <EM>n</EM> aber <EM>n</EM>-mal ausgeführt wird. <A
name=starten>
<P>
<H3>Starten des VI</H3></A>Der VI kann mit oder ohne Angabe eines Dateinamen
gestartet werden. Wird ein Dateiname angegeben, wird die Datei geladen oder,
falls sie noch nicht existiert, neu erzeugt. Aufrufe können sein:
<P>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE>vi </CODE></TD>
<TD>Aufruf von vi mit leerem Text-Puffer. </TD></TR>
<TR>
<TD vAlign=top><CODE>vi <EM>Dateiname</EM> </CODE></TD>
<TD>Datei wird geladen und der Cursor bei der ersten Zeile plaziert.
</TD></TR>
<TR>
<TD vAlign=top><CODE>vi <EM>+ Dateiname</EM> </CODE></TD>
<TD>Datei wird geladen und der Cursor bei der letzten Zeile plaziert.
</TD></TR>
<TR>
<TD vAlign=top><CODE>vi <EM>+n Dateiname</EM> </CODE></TD>
<TD>Datei wird geladen und der Cursor bei der <EM>n</EM>-ten Zeile
plaziert. </TD></TR>
<TR>
<TD vAlign=top><CODE>vi <EM>+/Zeichenkette Dateiname</EM> </CODE></TD>
<TD>Datei wird geladen und der Cursor bei der Zeile mit
<EM>Zeichenkette</EM> plaziert. </TD></TR></TBODY></TABLE>
<P>Hinweis: Die meisten vi-Versionen beherrschen auch das Bearbeiten mehrerer
Dateien, allerdings unterscheiden sich die Implementierungen meistens.
<P>Moderne Implementierungen wie z.B. <EM>Elvis</EM> können auch den Bildschirm
in Fenster unterteilen. Hierzu verweise ich aber auf die Dokumentation des
jeweiligen vi-Clones! <A name=beenden>
<P>
<H3>Beenden des VI</H3></A>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE>:wq </CODE></TD>
<TD>Speichern und vi verlassen. </TD></TR>
<TR>
<TD vAlign=top><CODE>:q </CODE></TD>
<TD>vi verlassen, falls Datei unverändert </TD></TR>
<TR>
<TD vAlign=top><CODE>:q! </CODE></TD>
<TD>vi verlassen, egal ob Datei verändert oder nicht. </TD></TR>
<TR>
<TD vAlign=top><CODE>:w </CODE></TD>
<TD>Datei speichern </TD></TR></TBODY></TABLE><A name=laden>
<P>
<H3>Dateien laden</H3></A>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE>e <EM>Datei</EM> </CODE></TD>
<TD><EM>Datei</EM> wird geladen, wenn sie existiert, ansonsten erzeugt.
</TD></TR>
<TR>
<TD vAlign=top><CODE>:next </CODE></TD>
<TD>Die nächste Datei wird geladen, falls vi mit mehreren Dateien
aufgerufen wurde. </TD></TR>
<TR>
<TD vAlign=top><CODE>:prev </CODE></TD>
<TD>Die vorherige Datei wird geladen, falls vi mit mehreren Dateien
aufgerufen wurde. </TD></TR></TBODY></TABLE><A name=cursorbewegungen>
<P>
<H3>Cursorbewegungen</H3></A>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>j </CODE></TD>
<TD>Den Cursor um eine (bzw. <EM>Count</EM>) Zeile runter. usw.). </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>k </CODE></TD>
<TD>Den Cursor um eine (bzw. <EM>Count</EM>) Zeile rauf. usw.). </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>l </CODE></TD>
<TD>Den Cursor um ein (bzw. <EM>Count</EM>) Zeichen rechts. usw.). </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>h </CODE></TD>
<TD>Den Cursor um ein (bzw. <EM>Count</EM>) Zeichen links. </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>w </CODE></TD>
<TD>Den Cursor um ein (bzw. <EM>Count</EM>) Wort rechts. </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>b </CODE></TD>
<TD>Den Cursor um ein (bzw. <EM>Count</EM>) Wort links. </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>h </CODE></TD>
<TD>Den Cursor um ein (bzw. <EM>Count</EM>) Zeichen links. </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>h </CODE></TD>
<TD>Den Cursor um ein (bzw. <EM>Count</EM>) Zeichen links. </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>G </CODE></TD>
<TD>Springe zum Ende der Datei oder, falls <EM>Count</EM> gegeben, zu
Zeile <EM>Count</EM>. </TD></TR>
<TR>
<TD vAlign=top><EM>Ctrl-f </EM></TD>
<TD>Page-Down. </TD></TR>
<TR>
<TD vAlign=top><EM>Ctrl-b </EM></TD>
<TD>Page-Up. </TD></TR>
<TR>
<TD vAlign=top><CODE>^ </CODE></TD>
<TD>Springe zum Anfang der aktuellen Zeile. </TD></TR>
<TR>
<TD vAlign=top><CODE>$ </CODE></TD>
<TD>Springe zum Ende der aktuellen Zeile. </TD></TR></TBODY></TABLE><A
name=eingeben>
<P>
<H3>Text eingeben</H3></A>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE>i </CODE></TD>
<TD>(insert), Eingabe vor dem aktuellen Zeichen. </TD></TR>
<TR>
<TD vAlign=top><CODE>a </CODE></TD>
<TD>(append), Eingabe nach dem aktuellen Zeichen. </TD></TR>
<TR>
<TD vAlign=top><CODE>I </CODE></TD>
<TD>(Insert), Eingabe am Anfang der aktuellen Zeile. </TD></TR>
<TR>
<TD vAlign=top><CODE>A </CODE></TD>
<TD>(Append), Eingabe am Ende der aktuellen Zeile. </TD></TR>
<TR>
<TD vAlign=top><CODE>o </CODE></TD>
<TD>neue Zeile und Eingabe nach der aktuellen Zeile. </TD></TR>
<TR>
<TD vAlign=top><CODE>O </CODE></TD>
<TD>neue Zeile und Eingabe vor der aktuellen Zeile. </TD></TR>
<TR>
<TD vAlign=top><EM>Ctrl-v </EM></TD>
<TD>Eingabe eines Steuerzeichens. </TD></TR></TBODY></TABLE><A name=aendern>
<P>
<H3>Text ändern</H3></A>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>r<EM>Zeichen</EM> </CODE></TD>
<TD>(replace), Änderung des aktuellen Buchstaben in <EM>Zeichen</EM>.
</TD></TR>
<TR>
<TD vAlign=top><CODE>R </CODE></TD>
<TD>(Replace), Überschreibemodus vom aktuellen Buchstaben aus. </TD></TR>
<TR>
<TD vAlign=top><CODE>cw<EM>Wort</EM> </CODE></TD>
<TD>ersetzt das Wort vor dem Cursor durch <EM>Wort</EM>. </TD></TR>
<TR>
<TD vAlign=top><CODE>cc<EM>Zeichenkette</EM> </CODE></TD>
<TD>ersetzt die aktuelle oder nächste Zeile durch <EM>Zeichenkette</EM>
</TD></TR>
<TR>
<TD vAlign=top><CODE>J </CODE></TD>
<TD>hängt die der aktuellen folgende Zeile an die aktuelle an und
positioniert den Cursor "dazwischen". </TD></TR></TBODY></TABLE><A
name=loeschen>
<P>
<H3>Text löschen</H3></A>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE><EM>[Count]<EM>x </em></em></CODE></TD>
<TD>1 (bzw. <EM>Count</EM>) Zeichen unter dem Cursor (nach rechts) wird
gelöscht. </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]<EM>X </em></em></CODE></TD>
<TD>1 (bzw. <EM>Count</EM>) Zeichen links vom dem Cursor wird gelöscht.
</TD></TR>
<TR>
<TD vAlign=top><CODE>D </CODE></TD>
<TD>löscht von der Cursorposition bis zum Zeilenende. </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>dd </CODE></TD>
<TD>1 (bzw. <EM>Count</EM>) Zeilen werden gelöscht. </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>d<EM>[Richtung]</EM> </CODE></TD>
<TD>1 (bzw. <EM>Count</EM>) mal wird in <EM>Richtung</EM> (rechts, links,
oben, unten, wortweise, was es eben so gibt!) gelöscht.
</TD></TR></TBODY></TABLE><A name=zwischenablagen>
<P>
<H3>Die Zwischenablagen im VI</H3></A>Der VI hat ziemlich viele Zwischenablagen.
Zum Einen sind das die, die beim Löschen automatisch gefüllt werden (man kann
auch ohne zu löschen Text in diese Ablagen schieben), zum Anderen gibt es noch
26 weitere, die man selbst belegen kann.
<P>Die sogenannten <EM>Delete Buffer</EM>, also die Zwischenablagen, die durch
das Löschen (z.B. durch <CODE>dd</CODE>) gefüllt werden, sind wie ein Stack
organisiert, d.h., nach jedem Löschen verschiebt sich der Inhalt der Ablagen um
Einen nach hinten. Diese Ablagen werden adressiert über die Zifferntasten 1 bis
0, es gibt also 10 Stück.
<P>Außerdem kann noch beliebig Text in die anderen 26 Ablagen schmeißen, die
durch die Tasten a-z adressiert sind. Die Vorgehensweise bei beiden Arten ist
identisch: Zwischenablage auswählen und dann kopieren, einfügen oder was auch
immer.
<P>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE>"<EM>1..0, a..z</EM> </CODE></TD>
<TD>Die Ablage <EM>1..0</EM> bzw. <EM>a..z</EM> für die nächste Aktion
auswälen. </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>y<EM>[Richtung]</EM> </CODE></TD>
<TD>1 (bzw. <EM>Count</EM>) mal wird in <EM>Richtung</EM> (rechts, links,
oben, unten, wortweise, was es eben so gibt!) in die aktuelle
Zwischenablage kopiert. </TD></TR>
<TR>
<TD vAlign=top><CODE><EM>[Count]</EM>yy </CODE></TD>
<TD>1 (bzw. <EM>Count</EM>) Zeilen werden in die aktuelle Zwischenablage
kopiert. </TD></TR>
<TR>
<TD vAlign=top><EM>Beliebige <A
href="http://www.fh-wedel.de/~herbert/html/vi/#loeschen">Löschaktion</A>
</EM></TD>
<TD>Gelöschter Text wird in die aktuelle Zwischenablage kopiert. </TD></TR>
<TR>
<TD vAlign=top><CODE>p </CODE></TD>
<TD>Der Inhalt der aktuellen Zwischenablage wird hinter dem Cursor
eingefügt. </TD></TR>
<TR>
<TD vAlign=top><CODE>P </CODE></TD>
<TD>Der Inhalt der aktuellen Zwischenablage wird vor dem Cursor eingefügt.
</TD></TR></TBODY></TABLE><A name=suchenersetzen>
<P>
<H3>Suchen und Ersetzen</H3></A>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE>/<EM>Regex</EM> </CODE></TD>
<TD>Suche vorwärts nach dem regulären Ausdruck <EM>Regex</EM>. </TD></TR>
<TR>
<TD vAlign=top><CODE>?<EM>Regex</EM> </CODE></TD>
<TD>Suche rückwärts nach dem regulären Ausdruck <EM>Regex</EM>. </TD></TR>
<TR>
<TD vAlign=top><CODE>n </CODE></TD>
<TD>Wiederholt das letzte Suchkommando. </TD></TR>
<TR>
<TD vAlign=top><CODE>N </CODE></TD>
<TD>Wiederholt das letzte Suchkommando in die jeweils andere Richtung.
</TD></TR>
<TR>
<TD vAlign=top><CODE>f<EM>Zeichen</EM> </CODE></TD>
<TD>Sucht nach <EM>Zeichen</EM> in der aktuellen Zeile vorwärts. </TD></TR>
<TR>
<TD vAlign=top><CODE>F<EM>Zeichen</EM> </CODE></TD>
<TD>Sucht nach <EM>Zeichen</EM> in der aktuellen Zeile rückwärts. </TD></TR>
<TR>
<TD vAlign=top><CODE>:%s/<EM>Quelle</EM>/<EM>Ziel</EM>/ </CODE></TD>
<TD>Ersetzt <EM>Quelle</EM> im Text <EM>einmal</EM> durch <EM>Ziel</EM>.
</TD></TR>
<TR>
<TD vAlign=top><CODE>:%s/<EM>Quelle</EM>/<EM>Ziel</EM>/g </CODE></TD>
<TD>Ersetzt <EM>Quelle</EM> im Text <EM>überall</EM> durch <EM>Ziel</EM>.
</TD></TR></TBODY></TABLE><A name=bookmarks>
<P>
<H3>Bookmarks im VI</H3></A>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE>m<EM>Key</EM> </CODE></TD>
<TD>Setzt eine Marke an der aktuellen Stelle unter dem Namen der Taste
<EM>Key</EM>. </TD></TR>
<TR>
<TD vAlign=top><CODE>'<EM>Key</EM> </CODE></TD>
<TD>Springt zu der <EM>Zeile</EM> mit der Marke <EM>Key</EM>. </TD></TR>
<TR>
<TD vAlign=top><CODE>`<EM>Key</EM> </CODE></TD>
<TD>Springt zu der <EM>Stelle</EM> mit der Marke <EM>Key</EM>.
</TD></TR></TBODY></TABLE><A name=goodies>
<P>
<H3>Sonstige Goodies</H3></A>
<TABLE width="95%" border=1>
<TBODY>
<TR>
<TD vAlign=top><CODE>. </CODE></TD>
<TD>Wiederholt die letzte Editieraktion, z.B. die Texteingabe seit das
letzte Mal der <EM>Visual Mode</EM> verlassen wurde, Suchen und Ersetzen
oder was auch immer. </TD></TR>
<TR>
<TD vAlign=top><CODE>%</CODE> über einer Klammer </TD>
<TD>Springt mit dem Cursor auf die korrespondierende öffnende bzw.
schließende Klammer. </TD></TR>
<TR>
<TD vAlign=top><CODE>:tag </CODE><EM>C-Identifier</EM>
<BR><CODE>Ctrl-]</CODE> (auf <EM>C-Identifier</EM>) </TD>
<TD>Sucht in der aktuellen C-Tags-Datei nach <EM>C-Identifier</EM> und
öffnet bei Erfolg einen Buffer mit der entsprechenden Quelltextdatei an
der entsprechenden Stelle. Siehe hierzu das Utility <EM>ctags</EM>, das
mit jedem VI installiert wird. </TD></TR></TBODY></TABLE>
<P><A name=at003></A>
<DIV align=right><A href="http://www.fh-wedel.de/~herbert/html/vi/#attop"
POSITION="">[Seitenanfang]</A> <A
href="http://www.fh-wedel.de/~herbert/html/index.html" POSITION="">[eine Ebene
höher]</A> <A
href="http://www.fh-wedel.de/cgi-bin/xml2html/~herbert/html/vi/index.html?DEFSTYLE=multilingual.style&amp;LANGUAGE=schwob"
POSITION="">[nach Schwäbisch übersetzen]</A></DIV>
<HR width="100%" noShade SIZE=1>
<TABLE width="100%">
<TBODY>
<TR>
<TD vAlign=top>
<DIV align=left>Letzte Änderung: 30.04.2001 </DIV></TD>
<TD vAlign=top>
<DIV align=right>
<ADDRESS>© <A href="mailto:herbert@fh-wedel.de">Herbert</A> &nbsp;&nbsp;<A
href="http://www.fh-wedel.de/~herbert">[seine Homepage]</A> &nbsp;&nbsp;<A
href="http://www.fh-wedel.de/~herbert/htdig/index.html">[durchsuchen]</A>
</ADDRESS></DIV></TD></TR></TBODY></TABLE></BODY></HTML>