mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-08 07:39:27 +00:00
451 lines
19 KiB
HTML
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, 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> <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&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> <A
|
|
href="http://www.fh-wedel.de/~herbert">[seine Homepage]</A> <A
|
|
href="http://www.fh-wedel.de/~herbert/htdig/index.html">[durchsuchen]</A>
|
|
</ADDRESS></DIV></TD></TR></TBODY></TABLE></BODY></HTML>
|