Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ vi(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

edit(1)

ex(1)

vi(1)                                                                 vi(1)

NAME
     vi, view, vedit - Bildschirmorientierter Editor (visual)

SYNTAX
     vi[ option]...[ datei]...

     view[ option]...[ datei]...

     vedit[ option]...[ datei]...

BESCHREIBUNG

   Aufbau

     Die Gesamt-Beschreibung des vi gliedert sich in folgende Teile:

     ⊕  Optionen

     ⊕  Kommandoübersicht (Auszug)

     ⊕  Einführung

     ⊕  Modi des vi

        -  Kommandomodus

        -  Eingabemodus

        -  Zeilen-Kommandomodus

        -  ex-Kommandomodus

        -  ex-Eingabemodus

     ⊕  Bildschirmaufbau

     ⊕  Arbeitsweise

        -  Puffer sichern und vi verlassen

        -  Editorpuffer des vi

        -  Positionieranweisungen des vi

     ⊕  Kommandos

        -  Definitionen

        -  Control-Kommandos

        -  Kommandos des vi-Kommandomodus




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     ⊕  Anpassung an die Datensichtstation

        - Voreinstellung des vi

     ⊕  Dateien

     ⊕  Umgebungsvariablen

     ⊕  Internationale Umgebung

     ⊕  Siehe auch

     Der vi (visual) ist ein bildschirmorientierter Texteditor. Nach dem
     Aufruf befindet sich der vi im vi-Kommandomodus. Falls Sie in den vi-
     Eingabemodus gewechselt haben, kehren Sie durch Drücken von ESCAPE
     (bzw. DEL) wieder in den vi-Kommandomodus zurück.

OPTIONEN
     -t markierung
          (t - tag) Die Datei mit markierung wird zum Editieren aufgerufen.
          Der Editor positioniert die Zeile mit der Definition der Markie-
          rung in die Mitte des Bildschirms. Im gleichen Dateiverzeichnis
          muß eine Datei tags vorhanden sein, die Suchzeichenketten für die
          Definitionen enthält. Diese Option hilft u. a. C-Programmierern,
          die beim Editoraufruf sofort auf die Definition einer Funktion
          oder eines Makros positionieren wollen. Die dafür benötigte Mar-
          kierungsdatei muß vorher mit dem Kommando ctags(1) erzeugt worden
          sein.

     -l   (l - lisp) Der Lisp-Modus wird eingeschaltet. Der Text wird so
          eingerückt, daß er ein für Lisp-Programme typisches Aussehen
          bekommt.

          Die folgenden vi-Kommandos haben für Lisp eine eigene Bedeutung:
          (, ), {, }, [[ und ]].

     -r datei
          (r - recover) Mit dieser Option -r können Sie Ihre Sitzung wiede-
          rherstellen, falls das System oder der vi während der vorherge-
          henden Sitzung abgestürzt sind.

          Bei einem Absturz des Systems oder des vi-Editors werden die
          Änderungen, die nur im Editorpuffer stehen, nicht in die Datei
          geschrieben. Das Betriebssystem Reliant UNIX versucht jedoch, den
          Inhalt des Puffers zu retten, indem eine Kopie des Pufferinhalts
          angelegt wird, sofern dies möglich ist. datei wird mit den Ände-
          rungen, die Sie vor dem Absturz gemacht haben, in den vi-Puffer
          geholt. Sie können nun die Datei weiter editieren oder die Ände-
          rungen in eine beliebige Datei schreiben.

     -L   (L - List) Nach einem Absturz des Systems oder des Editors wird
          eine Liste aller geretteten Dateien ausgegeben.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     -R   (R - Read-only) datei wird nur zum Lesen geöffnet. Damit können
          Sie ein versehentliches Überschreiben von datei verhindern.

          Vorsicht:

          Die Datei kann mit dem ex-Kommando w! dennoch überschrieben wer-
          den.

     -wn  (w - window) Der Bildschirm wird aus n Textzeilen aufgebaut.

          -wn nicht angegeben:

          Die Bildschirmlänge wird durch die Umgebungsvariable LINES fest-
          gelegt. Ist diese nicht definiert, wird der Wert für die Anzahl
          der in der Datei terminfo zur Definition der Bildschirmausgabe
          herangezogen

     -c kommando
          (c - command) Mit dieser Option können Sie beim Aufruf des vi ein
          ex-Kommando ausführen. Wenn Sie beim Aufruf des vi ein
          Positionier-Kommando angeben, steht die gewünschte Zeile danach
          in der Mitte des Bildschirms. Wenn Sie ein ex-Kommando ausführen,
          wird nach Ausführung des ex-Kommandos auf die letzte Zeile der
          Datei positioniert, sofern das ex-Kommando (z. B. ein Suchvor-
          gang) nichts anderes bewirkt.

          kommando nicht angegeben:

          Der vi gibt eine usage-Meldung aus und bricht ab.

          kommando angegeben:

          kommando kann entweder eine Zeilenangabe (n) sein, ein Suchkom-
          mando (/muster, siehe Abschnitt Kommandos des vi-Kommandomodus)
          oder ein sonstiges Kommando des ex ("ex-kommando" oder 'ex-
          kommando'). Es wird beim Aufruf des vi ausgeführt:

          n    n ist eine ganze Zahl. vi positioniert auf die n-te Zeile
               der Datei.

          /muster
               vi positioniert auf die Zeile, die muster enthält. muster
               ist ein einfacher regulärer Ausdruck [siehe expressions(5)].
               Falls muster Sonderzeichen enthält, müssen Sie die Sonder-
               zeichen jeweils mit einem Gegenschrägstrich \ entwerten oder
               muster in Hochkommas 'muster' einschließen, damit die Shell
               die Sonderzeichen nicht interpretiert.







Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

          'ex-kommando'
          "ex-kommando"
               ex-kommando kann ein beliebiges ex-Kommando sein. Das ex-
               Kommando muß in Hochkommas oder Anführungszeichen einge-
               schlossen werden, damit es von der Shell nicht interpretiert
               wird. Falls nicht schon durch das ex-Kommando positioniert
               wird, positioniert der vi auf die letzte Zeile der Datei.

               Beispiel:

               Nach dem Aufruf des vi mit

               vi -c "set number showmode" termine

               wird die Datei termine geöffnet, die Schreibmarke auf die
               letzte Zeile der Datei positioniert, und auf dem Bildschirm
               werden Zeilennummern sowie der vi-Modus angezeigt (vgl. das
               Beispiel bei ex).

     -x   Verschlüsselungsoption: vi führt beim Aufruf das ex-Kommando X
          aus und fragt Sie nach einem Schlüssel. Dieser Schlüssel wird
          dann zum Codieren und Decodieren von Text durch den Algorithmus
          des Kommandos crypt verwendet. vi klärt ab, ob der einzulesende
          Text verschlüsselt ist oder nicht. Die temporäre Pufferdatei wird
          ebenfalls mit einer Transformation des eingegebenen Schlüssels
          codiert [siehe crypt(1)].

     -C   Verschlüsselungsoption: Das Kommando C entspricht dem Kommando X
          mit folgendem Unterschied: es wird angenommen, daß jeder zu
          lesende Text verschlüsselt ist [siehe crypt(1)].

     datei
          Name der zu editierenden Datei. Sie können mehrere Dateien ange-
          ben. vi beginnt dann mit der ersten angegebenen Datei. Mit dem
          ex-Kommando n können Sie in die nächste Datei wechseln (siehe
          auch ex-Kommandos rew und ar). Wenn Sie keine Datei angeben,
          arbeiten Sie zunächst mit einem leeren Editorpuffer. Den Inhalt
          dieses Puffers können Sie dann mit dem ex-Kommando w datei in die
          Datei datei schreiben.















Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

KOMMANDOÜBERSICHT (Auszug)
     In der folgenden Übersicht sind die gebräuchlichsten vi-Kommandos in
     Funktionsgruppen zusammengefaßt. Im Abschnitt KOMMANDOS finden Sie
     eine ausführliche Beschreibung in alphabetischer Reihenfolge.

     ______________________________________________________________________
    | vi laden                                                            |
    |_____________|_______________________________________________________|
    | viCR        |  vi mit leerem Editorpuffer aufrufen                  |
    |_____________|_______________________________________________________|
    | vi datei CR |  vi mit der zu editierenden datei laden               |
    |_____________|_______________________________________________________|

     ______________________________________________________________________
    | vi beenden                                                          |
    |_____________|_______________________________________________________|
    | ZZ          |  vi verlassen, Editorpuffer in die editierte Datei    |
    |             |  schreiben; wie :wq CR                                |
    |_____________|_______________________________________________________|
    | :wCR        |  Editorpuffer in editierte Datei schreiben            |
    |_____________|_______________________________________________________|
    | :w datei CR |  Editorpuffer in datei schreiben                      |
    |_____________|_______________________________________________________|
    | :qCR        |  vi verlassen falls Änderungen gesichert              |
    |_____________|_______________________________________________________|
    | :q! CR      |  vi verlassen, Änderungen gehen verloren              |
    |_____________|_______________________________________________________|
    | :wq CR      |  vi verlassen, Editorpuffer in die editierte Datei    |
    |             |  schreiben; wie ZZ                                    |
    |_____________|_______________________________________________________|
























Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     ______________________________________________________________________
    | Schreibmarke positionieren                                          |
    |_____________|_______________________________________________________|
    | h           |  ein Zeichen nach links                               |
    |_____________|_______________________________________________________|
    | j           |  in der gleichen Spalte eine Zeile vor                |
    |_____________|_______________________________________________________|
    | +           |  eine Zeile vor, an Zeilenanfang                      |
    |_____________|_______________________________________________________|
    | CR          |  eine Zeile vor, an Zeilenanfang                      |
    |_____________|_______________________________________________________|
    | k           |  in der gleichen Spalte eine Zeile zurück             |
    |_____________|_______________________________________________________|
    | -           |  eine Zeile zurück, an Zeilenanfang                   |
    |_____________|_______________________________________________________|
    | l           |  ein Zeichen nach rechts                              |
    |_____________|_______________________________________________________|
    | H           |  Bildschirmanfang                                     |
    |_____________|_______________________________________________________|
    | M           |  Bildschirmmitte                                      |
    |_____________|_______________________________________________________|
    | L           |  Bildschirmende                                       |
    |_____________|_______________________________________________________|
    | 0           |  Bildschirmrand links                                 |
    |_____________|_______________________________________________________|
    | |           |  Bildschirmrand links                                 |
    |_____________|_______________________________________________________|
    | $           |  letztes Zeichen der Zeile                            |
    |_____________|_______________________________________________________|
    | ^           |  erstes Zeichen der Zeile, das nicht Leerzeichen oder |
    |             |  Tabulator ist                                        |
    |_____________|_______________________________________________________|
    | w           |  Wortanfang des nächsten Wortes                       |
    |_____________|_______________________________________________________|
    | e           |  Wortende des nächsten Wortes                         |
    |_____________|_______________________________________________________|
    | b           |  Wortbeginn des vorhergehenden Wortes                 |
    |_____________|_______________________________________________________|
    | W           |  Wortanfang des nächsten Wortes (Langwort)            |
    |_____________|_______________________________________________________|
    | E           |  Wortende des nächsten Wortes (Langwort)              |
    |_____________|_______________________________________________________|
    | B           |  Wortbeginn des vorhergehenden Wortes (Langwort)      |
    |_____________|_______________________________________________________|










Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     ______________________________________________________________________
    | Fenster positionieren                                               |
    |_____________|_______________________________________________________|
    | CTRL-d      |  halben Bildschirm vorwärts                           |
    |_____________|_______________________________________________________|
    | CTRL-u      |  halben Bildschirm zurück                             |
    |_____________|_______________________________________________________|
    | CTRL-f      |  einen Bildschirm vorwärts                            |
    |_____________|_______________________________________________________|
    | CTRL-b      |  einen Bildschirm zurück                              |
    |_____________|_______________________________________________________|
    | CTRL-e      |  eine Zeile vorwärts                                  |
    |_____________|_______________________________________________________|
    | CTRL-y      |  eine Zeile zurück                                    |
    |_____________|_______________________________________________________|
    | z CR        |  aktuelle Zeile an Bildschirmanfang                   |
    |_____________|_______________________________________________________|
    | z.          |  aktuelle Zeile an Bildschirmmitte                    |
    |_____________|_______________________________________________________|
    | z-          |  aktuelle Zeile an Bildschirmende                     |
    |_____________|_______________________________________________________|
    | 1G          |  Dateianfang                                          |
    |_____________|_______________________________________________________|
    | nG          |  Zeile n auf Bildschirmmitte                          |
    |_____________|_______________________________________________________|
    | G           |  Dateiende                                            |
    |_____________|_______________________________________________________|



























Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     ______________________________________________________________________
    | Textteile löschen und zurückholen                                   |
    |_____________|_______________________________________________________|
    | x           |  löscht Zeichen an der Position der Schreibmarke      |
    |_____________|_______________________________________________________|
    | X           |  löscht Zeichen links von der Schreibmarke            |
    |_____________|_______________________________________________________|
    | dd          |  löscht aktuelle Zeile                                |
    |_____________|_______________________________________________________|
    | dG          |  löscht ab aktuelle Zeile bis Dateiende               |
    |_____________|_______________________________________________________|
    | dH          |  löscht ab Bildschirmanfang bis einschließlich der    |
    |             |  aktuellen Zeile                                      |
    |_____________|_______________________________________________________|
    | D           |  löscht Zeilenrest ab Schreibmarke                    |
    |_____________|_______________________________________________________|
    | u           |  gelöschten Text aus Standardpuffer zurückholen       |
    |_____________|_______________________________________________________|
    | U           |  aktuelle Zeile wieder herstellen                     |
    |_____________|_______________________________________________________|
    | p           |  Inhalt des Puffers hinter aktuelle Position der      |
    |             |  Schreibmarke schreiben                               |
    |_____________|_______________________________________________________|
    | P           |  Inhalt des Puffers vor aktuelle Position der Schreib-|
    |             |  marke schreiben                                      |
    |_____________|_______________________________________________________|




























Seite 8                      Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     ______________________________________________________________________
    | Textteile ändern                                                    |
    |_____________|_______________________________________________________|
    | r           |  ersetzt aktuelles Zeichen durch nächste Eingabe      |
    |_____________|_______________________________________________________|
    | R           |  ab aktuellem Zeichen Text überschreiben              |
    |_____________|_______________________________________________________|
    | o           |  nach aktueller Zeile Leerzeile einfügen              |
    |_____________|_______________________________________________________|
    | O           |  vor aktueller Zeile Leerzeile einfügen               |
    |_____________|_______________________________________________________|
    | a           |  Text nach aktuellem Zeichen einfügen                 |
    |_____________|_______________________________________________________|
    | A           |  Text am Zeilenende anfügen                           |
    |_____________|_______________________________________________________|
    | i           |  Text an der aktuellen Schreibmarkenposition einfügen |
    |_____________|_______________________________________________________|
    | I           |  Text am Zeilenanfang einfügen                        |
    |_____________|_______________________________________________________|

     ______________________________________________________________________
    | Kopieren                                                            |
    |_____________|_______________________________________________________|
    | Y           |  aktuelle Zeile merken                                |
    |_____________|_______________________________________________________|
    | yy          |  aktuelle Zeile merken                                |
    |_____________|_______________________________________________________|
    | Yp          |  aktuelle Zeile verdoppeln                            |
    |_____________|_______________________________________________________|
    | yyp         |  aktuelle Zeile verdoppeln                            |
    |_____________|_______________________________________________________|
    | :10,13t 20  |  Zeilen 10 bis 13 ab neuer Zeile 21 einfügen          |
    |_____________|_______________________________________________________|
    | :.t.        |  aktuelle Zeile verdoppeln                            |
    |_____________|_______________________________________________________|
    | :t.         |  aktuelle Zeile verdoppeln                            |
    |_____________|_______________________________________________________|
    | :r datei    |  Inhalt von datei hinter aktuelle Zeile kopieren      |
    |_____________|_______________________________________________________|















Seite 9                      Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     ______________________________________________________________________
    | Übertragen                                                          |
    |_____________|_______________________________________________________|
    | 3dd         |  3 Zeilen löschen, einschließlich der aktuellen       |
    |             |  Zeile                                                |
    |_____________|_______________________________________________________|
    | p           |  gespeicherte Zeilen einfügen                         |
    |_____________|_______________________________________________________|
    | "a3dd       |  3 Zeilen löschen und in Puffer a ablegen             |
    |_____________|_______________________________________________________|
    | "ap         |  gespeicherte Zeilen nach aktueller Zeile einfügen    |
    |_____________|_______________________________________________________|

     ______________________________________________________________________
    | Suchen und ersetzen                                                 |
    |_____________________|_______________________________________________|
    | /xyz                |  im ganzen Editorpuffer nach xyz vorwärts     |
    |                     |  suchen                                       |
    |_____________________|_______________________________________________|
    | /xyz<blank><blank>/ |  im ganzen Editorpuffer nach xyz und 2 Leer-  |
    |                     |  zeichen suchen                               |
    |_____________________|_______________________________________________|
    | :s/xyz/abc/         |  in aktueller Zeile xyz durch abc ersetzen    |
    |_____________________|_______________________________________________|
    | :/alt/s/alt/neu     |  erst alt suchen, dann alt durch neu ersetzen |
    |_____________________|_______________________________________________|
    | :1,$s/alt/neu/g     |  im ganzen Editorpuffer alt durch neu ersetzen|
    |_____________________|_______________________________________________|

EINFÜHRUNG
     Der vi stellt auf dem Bildschirm in der Regel 23 Zeilen der zu editie-
     renden Datei dar. Sie lassen sich Ausschnitte der Datei anzeigen,
     indem Sie dieses Fenster verschieben. vi bietet Ihnen eine breite
     Palette von Möglichkeiten zur Textedition. Sie können:

     -  Text erstellen, ändern, kopieren und löschen

     -  die Schreibmarke mittels einfacher Kommandos positionieren (z. B.
        auf den Anfang oder das Ende eines Wortes, einer Zeile, eines Sat-
        zes, eines Absatzes oder der Datei)

     -  Textmuster mit regulären Ausdrücken suchen und ersetzen

     -  eine Subshell aufrufen

     -  mit einem Reliant UNIX Kommando einen Bereich der aktuellen Datei
        bearbeiten

     -  mehrere Dateien während einer Sitzung bearbeiten und Text von einer
        Datei in eine andere kopieren




Seite 10                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     -  eine Datei wiederherstellen, die durch eine Unterbrechung während
        einer Sitzung verlorenging

     Der vi ist eine erweiterte Form des Zeileneditors ex (siehe ex). Sie
     können zwischen diesen beiden Editoren hin- und herwechseln und vom vi
     aus ex-Kommandos ausführen.

     view verhält sich wie vi, außer daß datei nur zum Lesen geöffnet ist
     und nicht verändert werden darf.

     vedit ist eine spezielle Version von vi für Anfänger. vedit verhält
     sich wie vi, wenn die Optionen report=1, showmode, nomagic sowie
     novice gesetzt sind (zu den Optionen siehe ex).

   Modi des vi

     Der vi stellt Ihnen verschiedene Modi zur Verfügung, in denen Sie
     arbeiten können:

     -  vi-Kommandomodus

     -  vi-Eingabemodus

     -  vi-Zeilen-Kommandomodus

     -  ex-Kommandomodus

     -  ex-Eingabemodus

     Nach Aufruf des vi befinden Sie sich immer im vi-Kommandomodus. Von
     dort aus können Sie in die anderen Modi wechseln. Je nach Modus inter-
     pretiert der vi Ihre Tastatureingabe unterschiedlich.

   vi-Kommandomodus

     Nachdem Sie den vi aufgerufen haben, befindet sich der vi im vi-
     Kommandomodus. In diesem Modus ist keine Texteingabe möglich. Jede
     Eingabe über die Tastatur wird sofort als vi-Kommando interpretiert,
     ohne daß sie am Bildschirm ausgegeben wird. Handelt es sich dabei um
     ein zulässiges Kommando, wird es ausgeführt, und das Ergebnis ist
     sofort am Bildschirm sichtbar.

   vi-Eingabemodus

     Im Eingabemodus ergänzen oder ändern Sie Text im Editorpuffer. Den
     Eingabemodus schalten Sie ein, wenn Sie eines der vi-Kommandos A, a,
     C, c, I, i, O, o, S, s oder R eingeben (siehe im Abschnitt Kommandos,
     Kommandos des vi-Kommandomodus). Alle folgenden Eingabezeichen, auch
     verschiedene nicht druckbare Zeichen, werden auf den Bildschirm und in
     den Editorpuffer geschrieben.




Seite 11                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     Im Eingabemodus können Sie die meisten vi-Kommandos nicht verwenden.
     Es gibt jedoch einige vi-Kommandos, die im Eingabemodus eine spezielle
     Bedeutung haben. Diese sind:

     ESCAPE
          Eingabemodus verlassen, zurück in den vi-Kommandomodus.

     DEL  Eingabemodus abbrechen, zurück in den vi-Kommandomodus.

     CR   Neue Zeile.

     CTRL-@
          Zuletzt eingegebenen Text nochmals eingeben. Dieses Kommando
          geben Sie ein, unmittelbar nachdem Sie in den Einfügemodus
          gewechselt haben. vi fügt dann den beim letzten Einfügen eingege-
          benen Text ein, falls dieser aus nicht mehr als 128 Zeichen
          besteht. Danach wird automatisch zurück in den Kommandomodus
          geschaltet.

     CTRL-d
          Wenn Sie eine automatische Einrückung definiert haben, können Sie
          mit CTRL-d den linken Rand um eine Tabulatorposition nach links
          positionieren. Die Schrittbreite können Sie mit der Option shift-
          width festlegen. Dieses Kommando ist nur am Anfang einer neuen
          Eingabezeile und mit gesetzter Option autoindent sinnvoll.

     CTRL-h
          Ein Zeichen zurück.

     CTRL-t
          Einen Tabulatorschritt nach rechts, entsprechend shiftwidth. Dies
          ist nur am Anfang einer neuen Eingabezeile möglich.

     CTRL-v
          Nicht druckbare Zeichen einfügen.

     CTRL-w
          Ein Wort zurück.

     \    Escape für Korrekturzeichen BACKSPACE.

   vi-Zeilen-Kommandomodus

     Im vi-Zeilen-Kommandomodus können Sie vi-, ex- und Reliant UNIX Kom-
     mandos in der Statuszeile eingeben. Den Zeilen-Kommandomodus schalten
     Sie durch Eingabe eines Doppelpunktes : oder eines Schrägstriches /
     oder eines Fragezeichens ? ein. Eine weitere Möglichkeit ist die Ein-
     gabe eines Ausrufezeichens !, gefolgt von einer Positionieranweisung
     auf eine Zeile. Kommandoeingaben im Zeilen-Kommandomodus schließen Sie
     mit CR oder ESCAPE ab. Mit DEL brechen Sie die Eingabe ab.

     Vorsicht:


Seite 12                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     Im vi-Zeilen-Kommandomodus löscht ESCAPE ein gerade eingegebenes Kom-
     mando nicht, sondern schickt es ab. Das Kommando wird also ausgeführt!
     Im vi-Zeilen-Kommandomodus müssen Sie DEL verwenden, um ein eingegebe-
     nes Kommando zu löschen.

     :       Die Eingabe eines Doppelpunktes : im vi-Kommandomodus bewirkt,
             daß die nachfolgende Eingabe bis zum nächsten ESCAPE oder CR
             als ex-Kommando interpretiert wird. (Alle ex-Kommandos sind
             unter ex, ex-Kommandos beschrieben.) Nach Eingabe des Doppel-
             punktes springt die Schreibmarke in die unterste Zeile, die
             Statuszeile. Der Doppelpunkt und das eingegebene Kommando wer-
             den nun angezeigt. Sie können fast alle ex-Kommandos verwen-
             den; ausgenommen sind davon jedoch solche ex-Kommandos, die
             den ex in den ex-Eingabemodus schalten würden.

             Für den Namen der im Editorpuffer befindlichen Datei kann das
             Prozentzeichen % als Kurzbezeichnung verwendet werden. Das
             Nummernzeichen # steht für den Namen der in der gleichen Sit-
             zung vorher bearbeiteten Datei (siehe ex, Aktuelle und sekun-
             däre Datei).

             Beispiel:

             :! diff # % CR

             vi gibt auf die Standard-Ausgabe die Unterschiede zwischen der
             vorher editierten Datei und der aktuellen Datei aus. Keine der
             beiden Dateien wird verändert.

     / oder ?
             Nach Eingabe eines Schrägstriches / bzw. Fragezeichens ?
             springt die Schreibmarke in die Statuszeile. Geben Sie nun
             einen regulären Ausdruck an, nach dem der vi vorwärts (bei
             Einagbe von /) oder rückwärts (bei Eingabe von ?) sucht. Mit
             dem vi-Kommando n wiederholen Sie die Suche in Suchrichtung,
             mit N entgegen der Suchrichtung.

     !       Nach Eingabe eines Ausrufezeichens ! im vi-Kommandomodus
             springt die Schreibmarke nicht sofort in die Statuszeile. Sie
             tut dies erst, wenn Sie eine vi-Positionieranweisung auf eine
             Zeile gegeben haben. Am Anfang der Statuszeile wird ein Ausru-
             fezeichen ausgegeben. Geben Sie als Positionieranweisung ein
             Ausrufezeichen ein, gilt als Position die aktuelle Zeile. Ihre
             Positionieranweisung wird nicht angezeigt. Sie können nun ein
             Reliant UNIX Kommando eingeben, das Sie mit CR oder ESCAPE
             freigeben. Der Bereich von der aktuellen Zeile bis zur angege-
             benen Position wird, falls das Reliant UNIX Kommando von der
             Standard-Eingabe liest, zur Eingabe des Reliant UNIX Kommandos
             und nach Ende des Kommandos durch die Ausgabe (Standard-
             Ausgabe und Standard-Fehlerausgabe) des Reliant UNIX Kommandos
             ersetzt. Falls das Kommando nichts ausgibt (z. B. true), wird
             der angegebene Bereich gelöscht, also durch die leere


Seite 13                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

             Zeichenkette ersetzt.

   ex-Kommandomodus

     Den ex-Kommandomodus schalten Sie ein, indem Sie im vi-Kommandomodus
     das Kommando Q eingeben. Damit verlassen Sie den bildschirmorientier-
     ten vi und gelangen in den zeilenorientierten ex. Sie wechseln in den
     vi zurück, indem Sie im ex-Kommandomodus das Kommando vi CR eingeben.

   ex-Eingabemodus

     Den ex-Eingabemodus schalten Sie ein, indem Sie im ex-Kommandomodus a,
     i oder c eingeben. Alles, was Sie in diesem Modus eingeben, wird in
     den Editorpuffer geschrieben. Sie beenden diesen Modus, indem Sie eine
     einzelne Zeile mit einem Punkt in der ersten Spalte eingeben.

     Die meisten ex-Kommandos können Sie auf zwei Arten eingeben:

     -  vom vi-Kommandomodus aus, indem Sie das vi-Kommando Doppelpunkt :
        eingeben, gefolgt von dem gewünschten ex-Kommando

     -  vom ex-Kommandomodus aus

BILDSCHIRMAUFBAU
     Ein zeichenorientierter Bildschirm einer Datensichtstation stellt in
     der Regel 24 Zeilen und 80 Spalten dar. Davon werden standardmäßig 23
     Bildschirm-Zeilen für die Darstellung des Textes der zu editierenden
     Datei verwendet. In xterm-Sitzungen können mehr als 24 Zeilen darge-
     stellt werden. Die Anzahl der vom vi verwendeten Bildschirmzeilen wird
     in diesem Fall automatisch festgestellt.

     Die unterste Zeile auf dem Bildschirm ist die Status- und Kommando-
     zeile. Sie dient zur Eingabe von Kommandos und zur Ausgabe von Infor-
     mationen und Meldungen des vi.

     Falls eine Textzeile breiter ist als der Bildschirm, wird sie in der
     nächsten Bildschirmzeile fortgesetzt.

     vi verwendet zur Kennzeichnung des Zeilenstatus zwei Sonderzeichen,
     die in der ersten Spalte der jeweiligen Zeile sichtbar sind:

     ~  Die Tilde ~ kennzeichnet Zeilen, die auf dem Bildschirm, aber nicht
        im Editorpuffer vorhanden sind. Das sind Zeilen hinter dem Datei-
        ende. Wenn sich z. B. die letzte Textzeile der Datei in der Mitte
        des Bildschirms befindet, dann beginnen alle dahinterliegenden
        Bildschirmzeilen mit ~. Sobald Sie in die erste so gekennzeichnete
        Zeile Text eingeben, verschwindet die Tilde. Wenn Sie eine neue
        oder leere Datei mit vi aufrufen, enthalten alle Bildschirmzeilen
        bis auf die erste und die letzte (Statuszeile) dieses Zeichen.

     @  Der Klammeraffe @ kennzeichnet Zeilen, die der vi auf dem Bild-
        schirm nicht ordnungsgemäß darstellen kann. Dies kann zwei Ursachen


Seite 14                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

        haben:

        -  Eine Textzeile kann sich über mehrere Zeilen auf dem Bildschirm
           erstrecken. Deshalb können Textzeilen im Editorpuffer vorhanden
           sein, aber der Platz auf dem Bildschirm nach der letzten, noch
           vollständig dargestellten Textzeile reicht nicht mehr für eine
           weitere ganze Textzeile.

        -  Zeilenweises Löschen aus einer Datei kann dazu führen, daß die
           Bildschirmdarstellung nicht mehr mit dem tatsächlichen Inhalt
           des Editorpuffers übereinstimmt. In diesem Fall können Sie den
           Bildschirm mit dem vi-Kommando CTRL-L neu aufbauen.

     Die letzte Zeile auf dem Bildschirm ist die Statuszeile. Sie dient
     zur:

     -  Eingabe von vi-Kommandos, die mit /, ?, ! oder : beginnen

     -  Ausgabe von Meldungen

     -  Ausgabe von ex-Kommandos

     -  Anzeige des Modus (Kommandomodus wird nicht angezeigt)

   Akustisches Signal

     Sie erhalten ein akustisches Signal wenn

     -  Sie im Kommandomodus die Taste ESCAPE oder DEL drücken

     -  Sie ein unerlaubtes Kommando verwenden

     -  vi ein Signal SIGINT erhält

     Erhält der vi ein Signal SIGINT (DEL) während der Texteingabe oder
     während der Eingabe eines Kommandos in der untersten Bildschirmzeile,
     so wird die Eingabe beendet (bzw. das Kommando abgebrochen) und der
     Editor wieder in den Kommandomodus geschaltet. Der Empfang eines Sig-
     nals SIGINT im Kommandomodus bewirkt ein akustisches Signal.

ARBEITSWEISE
     Der vi arbeitet immer mit einem Editorpuffer. Bei Beginn einer vi-
     Sitzung wird eine Kopie der Datei, die Sie bearbeiten, im Editorpuffer
     angelegt. Falls Sie keinen Dateinamen angeben oder die Datei noch
     nicht existiert, beginnen Sie mit einem leeren Editorpuffer. Während
     einer Sitzung erfolgen alle Änderungen am Editorpuffer. Die Orginalda-
     tei wird erst verändert, wenn Sie den Inhalt des Editorpuffers in die
     Datei schreiben. Dies geschieht durch explizites Sichern während der
     Sitzung (mit dem ex-Kommando w) oder beim Verlassen des vi (mit den
     ex-Kommandos wq, x oder dem vi-Kommando ZZ). Sie können den vi auch
     verlassen, ohne die Orginaldatei zu verändern (durch das ex-Kommando
     q!). Falls Sie eine neue Datei erstellen wollen, wird die Datei erst


Seite 15                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     angelegt, wenn der Editorpuffer in die Datei geschrieben wird.

   Editorpuffer sichern und vi verlassen

     Um den Editorpuffer zu sichern oder den vi zu verlassen, muß sich der
     vi im vi-Kommandomodus befinden.

     Mit folgendem ex-Kommando (siehe Arbeitsweise des vi, Kommandos einge-
     ben) sichern Sie den Inhalt Ihres Editorpuffers in die editierte oder
     eine angegebene Datei:

     :w[ datei]
          (w - write, ex-Kommando) Der Inhalt des Editorpuffers wird in die
          angegebene Datei gesichert.

          datei nicht angegeben:

          Der Inhalt des Editorpuffers wird in die editierte Datei
          geschrieben.

     Um den vi zu verlassen, haben Sie folgende Möglichkeiten:

     :q   (q - quit, ex-Kommando) vi verlassen. Funktioniert nur, falls
          noch keine Änderungen am Editorpuffer vorgenommen wurden oder der
          geänderte Editorpuffer in eine Datei gesichert wurde.

     :q!  (q - quit, ex-Kommando) vi verlassen. Am Editorpuffer vorgenom-
          mene Änderungen gehen verloren.

     :x   (x - exit, ex-Kommando) vi verlassen und den geänderten Editor-
          puffer in die editierte Datei schreiben.

     ZZ   (vi-Kommando) vi verlassen und den geänderten Editorpuffer in die
          editierte Datei schreiben.

     :wq[ datei]
          (wq - write and quit, ex-Kommando) vi verlassen und den Editor-
          puffer in die angegebene Datei datei schreiben.

          datei nicht angegeben:

          Der Inhalt des Editorpuffers wird in die editierte Datei
          geschrieben.











Seite 16                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

   Editorpuffer des vi

     Der vi verfügt über

     -  einen temporären Puffer

     -  9 numerierte Puffer

     -  26 alphabetische Puffer

     Auf den Inhalt dieser Puffer können Sie im vi-Kommandomodus durch vi-
     Kommandos zugreifen.

   Temporärer Puffer

     Der vi sichert in den temporären Puffer die letzte Änderung, die Sie
     am Editorpuffer vornehmen. Wenn Sie z. B. eine Zeile gelöscht haben,
     dann enthält der Puffer die gelöschte Zeile. Die vi-Kommandos U und u
     (undo) benutzen diesen Puffer. Mit u können Sie Ihr letztes Kommando,
     das den Editorpuffer geändert hat, rückgängig machen. u macht auch u
     wieder rückgängig.

     Mit den vi-Kommandos P und p (put) können Sie ebenfalls auf den tempo-
     rären Puffer zugreifen, falls das letzte vi-Kommando ein Kopier- (y),
     ein Lösch- (d) oder sonstiges Änderungskommando war (außer R und r).

     P und p kopieren den Inhalt des temporären Puffers vor (P) bzw. hinter
     (p) die aktuelle Zeile. Im Gegensatz zu U (u) ändert P (p) den tempo-
     rären Puffer nicht. Dadurch können Sie, indem Sie P (p) mehrfach ver-
     wenden, den gleichen Text auch mehrfach an verschiedene Stellen der
     Datei einfügen.

     Vorsicht:

          Bei jedem Kommando, das den Editorpuffer ändert, wird der Inhalt
          des temporären Puffers überschrieben. Deshalb können Sie den tem-
          porären Puffer nicht verwenden, um Text von einer Datei in eine
          andere zu kopieren.

          Zwischen einem Kopier-, Lösch- oder Änderungskommando und dem
          vi-Kommando P (p) dürfen Sie nur die vi-Kommandos zur Positionie-
          rung der Schreibmarke (siehe Positionieranweisungen) verwenden,
          da andere Kommandos den Inhalt des temporären Puffers verändern.

          Wenn vi im Eingabemodus ist und Sie eine der Pfeil-Tasten benut-
          zen, funktioniert nach Benutzung der Pfeil-Tasten das vi-Kommando
          U (u) nicht.







Seite 17                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

   Numerierter Puffer

     Wenn Sie eine oder mehrere Zeilen löschen (vi-Kommando d), wird der
     gelöschte Text in den ersten von neun numerierten Puffer kopiert. Wenn
     Sie nun nochmals Zeilen löschen, wird der Inhalt von Puffer 1 in Puf-
     fer 2 kopiert, und die zuletzt gelöschten Zeilen werden wiederum in
     Puffer 1 gesichert. In Puffer 1 steht also immer der zuletzt gelöschte
     Text, in Puffer 2 der vorletzte ... und in Puffer 9 der neunt-letzte
     gelöschte Text.

     Den Inhalt der numerierten Puffer können Sie mit den vi-Kommandos P
     und p zurückholen. Die numerierten werden mit Anführungszeichen " und
     der Nummer des Puffers angesprochen, zum Beispiel:

     "4P

     Dieses vi-Kommando fügt den Inhalt des Puffers 4 vor die aktuelle
     Zeile (bzw. aktuelle Position der Schreibmarke) ein.

     Mit dem vi-Kommando Punkt . holen Sie den Inhalt des Puffers mit der
     nächsthöheren Nummer zurück, vorausgesetzt, Sie haben mit Ihrem letz-
     ten vi-Kommando Text aus einem numerierten Puffer zurückgeholt. Nach
     obigem Beispiel holen Sie also den Inhalt des Puffers 5 zurück. Der
     Inhalt der numerierten Puffer geht bei Dateiwechsel (mit den ex-
     Kommandos n oder e) nicht verloren.

   Alphabetischer Puffer

     Mit einem Kopier- (y) oder Löschkommando (d) können Sie Text in einen
     der 26 bezeichneten Puffer schreiben. Die Puffer bezeichnen Sie mit
     den Kleinbuchstaben a-z oder mit den Großbuchstaben A-Z. Klein- und
     Großbuchstaben sprechen den gleichen Puffer an, mit folgendem Unter-
     schied:

     Verwenden Sie Kleinbuchstaben, wird der alte Pufferinhalt durch den
     neuen überschrieben, der alte wird also gelöscht. Verwenden Sie Groß-
     buchstaben, wird der alte Pufferinhalt nicht überschrieben, sondern
     der neue Text wird an den alten angehängt. Der vi ändert den Inhalt
     eines bezeichneten Puffers während einer Editor-Sitzung solange nicht,
     bis Sie den Pufferinhalt ausdrücklich überschreiben. Der vi schreibt
     Text in einen bezeichneten Puffer, wenn Sie ein Anführungszeichen "
     eingeben, gefolgt von dem Namen des Puffers und einem der vi-Kommandos
     d oder y.

     Beispiele:

          "A10dd
               Aktuelle und neun weitere Zeilen (10) löschen (dd) und an
               den Inhalt in Puffer A anhängen.





Seite 18                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

          "by4w
               Das aktuelle Wort und drei folgende (4w) in den Puffer b
               kopieren (y).

          "cCZeichenkette ESCAPE
               Die aktuelle Zeile von der Position der Schreibmarke aus bis
               zum Zeilenende mit Zeichenkette überschreiben (C) und den
               überschriebenen Text in Puffer c sichern.

          "Ap  Den Text aus Puffer A zurückholen und hinter die aktuelle
               Zeile bzw. Position einfügen (p).

   Positionieranweisungen

     Der vi bietet eine große Menge von Kommandos und Suchkommandos zur
     Positionierung der Schreibmarke. Eine Positionieranweisung wird im
     vi-Kommandomodus eingegeben.

     In der folgenden Übersicht sind die wichtigsten Positionieranweisungen
     zusammengestellt. Die Begriffe Absatz, Abschnitt, Satz, Wort und Lang-
     wort sind im Abschnitt Kommandos, Definitionen erklärt.

     Zeichenweise positionieren

     [zahl]CTRL-h
          um zahl Zeichen nach links

     [zahl]h
          um zahl Zeichen nach links

     [zahl]l
          um zahl Zeichen nach rechts

     0    auf den Zeilenanfang

     ^    auf das erste Zeichen in der Zeile außer Leerzeichen und Tabula-
          tor

     [zahl]|
          auf die erste (zahl-te) Spalte der Zeile

     $    auf das letzte Zeichen in der Zeile

     [zahl]fzeichen
          auf zahl-tes Zeichen zeichen vorwärts

     [zahl]Fzeichen
          auf zahl-tes Zeichen zeichen rückwärts

     [zahl]tzeichen
          vor zahl-tes Zeichen zeichen vorwärts



Seite 19                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     [zahl]Tzeichen
          hinter zahl-tes Zeichen zeichen rückwärts

     Wortweise positionieren

     [zahl]b
          auf den Anfang des zahl-ten vorhergehenden Wortes

     [zahl]B
          auf den Anfang des zahl-ten vorhergehenden Langwortes

     [zahl]e
          auf das Ende des zahl-ten Wortes

     [zahl]E
          auf das Ende des zahl-ten Langwortes

     [zahl]w
          auf den Anfang des zahl-ten Wortes

     [zahl]W
          auf den Anfang des zahl-ten Langwortes

     Zeilenweise positionieren

     [zahl]k
          um zahl Zeilen in der gleiche Spalte nach oben

     [zahl]j
          um zahl Zeilen in der gleichen Spalte nach unten

     [zahl]CTRL-J
          um zahl Zeilen in der gleichen Spalte nach unten

     [zahl]CR
          um zahl Zeilen nach unten, auf erstes Zeichen außer Leerzeichen
          und Tabulatorzeichen

     [zahl]+
          um zahl Zeilen nach unten, auf erstes Zeichen außer Leerzeichen
          und Tabulatorzeichen

     [zahl]-
          um zahl Zeilen nach oben, auf erstes Zeichen außer Leerzeichen
          und Tabulatorzeichen

     [zeile]G
          auf Zeile Nummer zeile bzw. Dateiende (zeile nicht angegeben)

     [zahl]$
          auf das letzte Zeichen der zahl-ten Zeile



Seite 20                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     Satz-, absatz- und abschnittsweise positionieren

     [zahl](
          auf den Anfang des zahl-ten vorherigen Satzes

     [zahl])
          auf den Anfang des zahl-ten Satzes

     [zahl]{
          zurück zum Anfang des zahl-ten Absatzes

     [zahl]}
          auf den Anfang des zahl-ten Absatzes

     [zahl][[
          zurück auf die zahl-te vorangehende Abschnittsgrenze

     [zahl]]]
          auf die zahl-te Abschnittsgrenze

     %    zur korrespondierenden Klammer in C-Quellprogrammen

     Bildschirmbezogen positionieren

     [zahl]H
          auf das erste Zeichen in der zahl-ten Textzeile auf dem Bild-
          schirm

     M    auf die Bildschirmmitte

     [zahl]L
          auf das erste Zeichen in der zahlt-letzten Textzeile auf dem
          Bildschirm

     [zeile]z+
          aktuelle Zeile oder Zeile mit Nummer zeile an den oberen Bild-
          schirmrand

     [zeile]z.
          aktuelle Zeile oder Zeile mit Nummer zeile auf die Bildschirm-
          mitte

     [zeile]z-
          aktuelle Zeile oder Zeile mit Nummer zeile an den unteren Bild-
          schirmrand

     Muster und Marken positionieren

     /Muster
          auf Muster vorwärts




Seite 21                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     ?Muster
          auf Muster rückwärts

     'marke
          auf markierte Zeile (Zeilenanfang)

     `marke
          auf marke positionieren

KOMMANDOS
     Nach dem Aufruf befindet sich der vi im vi-Kommandomodus. Falls Sie in
     den vi-Eingabemodus gewechselt haben, kehren Sie durch Drü cken von
     ESCAPE (bzw. DEL) wieder in den vi-Kommandomodus zurück.

     ex-Kommandos können Sie, wie bereits oben beschrieben, entweder vom
     vi-Kommandomodus aus oder vom ex-Kommandomodus aus eingeben. Im fol-
     genden sind nur die vi-Kommandos beschrieben. Die ex-Kommandos finden
     Sie beim Kommando ex.

     Im vi-Kommando-Modus wird mit ESCAPE und DEL ein teilweise eingegebe-
     nes Kommando gelöscht. Wenn weder der Editor sich im Eingabemodus
     befindet, noch ein Kommando teilweise eingegeben wurde, so löst ESCAPE
     ein akustisches Signal aus.

     Vorsicht:

          Im vi-Zeilen-Kommandomodus löscht ESCAPE ein gerade eingegebenes
          Kommando nicht, sondern schickt es ab. Das Kommando wird also
          ausgeführt! Im vi-Zeilen-Kommandomodus müssen Sie DEL verwenden,
          um ein eingegebenes Kommando zu löschen.

     Sofern nicht anders angegeben, gelten die Kommandos nur im vi-
     Kommandomodus und haben im Eingabemodus keine spezielle Bedeutung.

   Definitionen

     Absatz
          Ein Absatz ist festgelegt durch den Wert der ex-Option para-
          graphs. Leere Zeilen und solche, an denen ein Abschnitt beginnt,
          sind ebenfalls Absatzgrenzen.

     Abschnitt
          Ein Abschnitt ist festgelegt durch den Wert der ex-Option secti-
          ons. Zeilen, die mit Formularvorschub CTRL-L oder der öffnenden
          geschweiften Klammer { beginnen, zählen ebenfalls als Abschnitts-
          grenze.

          Ist die ex-Option lisp gesetzt, dann zählt jede öffnende runde
          Klammer ( am Anfang einer Zeile ebenfalls als Abschnittsgrenze.





Seite 22                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     Langwort
          Ein Langwort ist eine Folge von Zeichen, die kein Leer-,
          Tabulator- oder Neue-Zeile-Zeichen enthalten. Vergleiche Wort.

     Satz Ein Satz wird beendet durch eines der folgenden Satzende-Zeichen:

          Punkt .

          Ausrufezeichen !

          Fragezeichen ?

          jeweils gefolgt von zwei Leerzeichen (um Verwechslungen mit einer
          Abkürzung zu vermeiden) oder dem Neue-Zeile-Zeichen. Zwischen dem
          Satzende-Zeichen und den Leerzeichen bzw. dem Neue-Zeile-Zeichen
          kann eine beliebige Anzahl von schließenden runden oder eckigen
          Klammern ), ], Anführungszeichen " und Gegenhochkommas ` stehen.

     Wort Ein Wort ist entweder eine Folge von alphanumerischen Zeichen
          oder eine Folge von Sonderzeichen. Ein Wort wird abgeschlossen
          von einem Leerzeichen, Tabulatorzeichen, Neue-Zeile-Zeichen oder
          dem nächsten folgenden Wort.

          Vergleiche Langwort.

          Beispiele:

               ((!!++;-.      ist ein Wort

               Me&You2        sind drei Worte (Me,&,You2), aber ein Lang-
                              wort

     Zeichenkette
          Eine beliebige Folge von Zeichen.

   Control-Kommandos

     Um ein Control-Kommando einzugeben, drücken Sie gleichzeitig die Taste
     CTRL und die Taste mit dem gewünschten Kommando. Einigen der Control-
     Kommandos kann eine positive ganze Zahl zahl vorangestellt werden. Die
     eckigen Klammern in der Beschreibung bedeuten, daß die Angabe von zahl
     optional ist. Während der Eingabe von zahl dürfen Sie die Taste CTRL
     nicht drücken. Die eingegebene zahl wird nicht angezeigt, sondern
     beeinflußt nur die Wirkung des nachfolgenden Kommandos. Haben Sie eine
     falsche Zahl angegeben, dann können Sie die Eingabe durch ESCAPE rück-
     gängig machen. Durch zahl geben Sie an:

     -  eine Größe bei einem Positionierkommando, z. B. rollt

        5 CTRL-U

        den Bildschrirm fünf Zeilen zurück.


Seite 23                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     -  einen Wiederholfaktor, z. B. blättert

        4 CTRL-B

        den Schirm um vier Seiten zurück.

     Der Standardwert für zahl ist 1, es sei denn es ist ausdrücklich
     anders angegeben.

     CTRL-@
          Im vi-Eingabemodus:

          Wenn Sie dieses als erstes und einziges Zeichen eingeben, wird
          der zuletzt eingegebene Text an der Stelle eingefügt, an der Sie
          CTRL-@ eingeben. Danach wird automatisch in den Kommandomodus
          zurückgewechselt.

          CTRL-@ funktioniert nur bis maximal 127 Zeichen.

     [zahl]CTRL-b
          (b - backward) Die Bildschirmausgabe wird um 21 Bildschirm-Zeilen
          zurückgeblättert. Mit zahl können Sie angeben, um wieviele Bild-
          schirmseiten zurückgeblättert werden soll. Falls möglich, werden
          auf die neue Bildschirmseite zwei Zeilen der vorhergehenden Bild-
          schirmseite übernommen.

     [zahl]CTRL-d
          Im vi-Kommandomodus:

          zahl nicht angegeben:

          zahl = 11 bzw. der zuletzt bei CTRL-d oder CTRL-u verwendete Wert
          von zahl

          (d - down) Die Bildschirmausgabe wird um ein halbes Fenster vor-
          wärts gerollt. Mit zahl kann angegeben werden, um wieviele Text-
          zeilen die Bildschirmausgabe gerollt werden soll; sie wird wäh-
          rend Ihrer vi-Sitzung für spätere Aufrufe der Kommandos CTRL-D
          und CTRL-U gespeichert.

          Im vi-Eingabemodus:

          zahl nicht angegeben:

          Im Eingabemodus wird die Schreibmarke entsprechend der ex-Option
          autoindent oder CTRL-t um shiftwidth Spalten nach links bewegt
          (siehe ex, ex-Optionen). CTRL-d funktioniert nur in einer Zeile,
          in der noch keine Zeichen stehen.

          zahl kann sein: ^ oder 0




Seite 24                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

          ^CTRL-d
               unterbricht das automatische Einrücken für diese Zeile.

          0CTRL-d
               beendet das automatische Einrücken.

     [zahl]CTRL-e
          Die Bildschirmausgabe wird um zahl Zeilen vorwärts gerollt. Falls
          möglich, bleibt die Position der Schreibmarke dabei unverändert.

     [zahl]CTRL-f
          (f - forward) Die Bildschirmausgabe wird um 21 Bildschirmzeilen
          in Vorwärtsrichtung geblättert. Mit zahl kann angegeben werden,
          um wieviele Bildschirmseiten vorwärts geblättert werden soll.

     CTRL-g
          In der Statuszeile werden folgende Informationen ausgegeben:

          -  der Name der aktuellen Datei

          -  eventuell eine Zustandsangabe [Modified], falls die Datei nach
             der letzten Sicherung mit dem ex-Kommando w verändert wurde

          -  die aktuelle Zeilennummer

          -  die Gesamtzahl aller Textzeilen im Editorpuffer

          -  der Prozent-Anteil der aktuellen Zeile an der Gesamtlänge der
             Datei in Zeilen.

          Entspricht dem ex-Kommando f.

     [zahl]CTRL-h
          (gleichbedeutend mit BACKSPACE Im vi-Kommandomodus:

          Die Schreibmarke wird um zahl Zeichen nach links bewegt, höch-
          stens bis zum linken Rand des Bildschirms (siehe auch vi-Kommando
          h).

          Im vi-Eingabemodus:

          Keine Angabe für zahl möglich.

          Die Schreibmarke wird um ein Zeichen nach links bewegt, höchstens
          bis zum Anfang des gerade eingegebenen Textes.

     [zahl]CTRL-j
          (gleichbedeutend mit MENU und PFEIL-UNTEN) Die Schreibmarke wird
          innerhalb der aktuellen Spalte um zahl Textzeilen nach unten
          bewegt.

          Entspricht CTRL-n und j.


Seite 25                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     CTRL-l
          Die aktuelle Bildschirmausgabe wird gelöscht und wieder neu auf-
          gebaut. Dieses Kommando können Sie verwenden, wenn Meldungen oder
          Nachrichten auf dem Bildschirm ausgegeben wurden (z. B. mit
          write).

     [zahl]CTRL-m
          (gleichbedeutend mit CR) Die Schreibmarke wird zum ersten Zeichen
          in der zahl-ten Zeile bewegt, bei dem es sich nicht um ein Leer-
          oder Tabulatorzeichen handelt.

     [zahl]CTRL-n

          Entspricht CTRL-j und j.

     [zahl]CTRL-p
          Die Schreibmarke wird innerhalb der aktuellen Spalte in die
          zahl-te darüberliegende Zeile bewegt.

          Entspricht dem vi-Kommando k.

     CTRL-r
          (r - refresh) Die aktuelle Bildschirmausgabe wird gelöscht und
          wieder neu aufgebaut. Zuvor gelöschte Zeilen, durch das Platzhal-
          terzeichen @ gekennzeichnet, werden entfernt. Siehe CTRL-l.

     CTRL-t
          Im vi-Eingabemodus:

          (t - Tabulator) Tabulatorzeichen einfügen. Die Schrittweite eines
          Tabulators entspricht dem Wert der ex-Option shiftwidth (siehe
          ex, ex-Optionen). Soll die Schreibmarke diese Leer- oder Tabula-
          torzeichen nach vorne überspringen, so müssen Sie das Kommando
          CTRL-d verwenden.

     [zahl]CTRL-u
          zahl nicht angegeben:

          zahl = 11 bzw. der zuletzt bei CTRL-d oder CTRL-u verwendete Wert
          der zahl

          (u - up) Die Bildschirmausgabe wird um ein halbes Fenster rück-
          wärts in Richtung Dateianfang gerollt. Mit zahl können Sie ange-
          ben, um wieviele Textzeilen die Bildschirmausgabe gerollt werden
          soll; sie wird während Ihrer vi-Sitzung für spätere Aufrufe der
          Kommandos CTRL-d und CTRL-u gespeichert.








Seite 26                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     CTRL-v
          Im vi-Eingabemodus:

          Ermöglicht, ein nicht druckbares Zeichen in den Text einzufügen
          (z. B. Escape- oder Control-Zeichen). Die Tastenfolge CTRL-V
          ESCAPE fügt das Zeichen ESC in die Datei ein.

     CTRL-w
          Im vi-Eingabemodus:

          (w - word) Die Schreibmarke wird zum Anfang des vorherigen Wortes
          bewegt. Sie können dabei den Bereich des gerade eingegebenen Tex-
          tes nicht verlassen. Die nach links übersprungenen Worte sind nur
          noch auf dem Bildschirm vorhanden, sollen sie im Editorpuffer
          stehen, müssen sie nochmals eingegeben werden.

     [zahl]CTRL-y
          Die Bildschirmausgabe wird um zahl Zeilen rückwärts in Richtung
          Dateianfang gerollt. Falls möglich, bleibt die Position der
          Schreibmarke dabei unverändert.

     CTRL-[
          (gleichbedeutend mit ESCAPE) Im vi-Kommandomodus:

          Ein teilweise eingegebenes Kommando wird gelöscht; wurde kein
          Kommando teilweise eingegeben, so wird ein akustisches Signal
          ausgegeben.

          Im vi-Zeilen-Kommandomodus:

          Ein gerade eingegebenes Kommando wird abgeschlossen und ausge-
          führt.

          Im vi-Eingabemodus:

          Der vi-Eingabemodus wird beendet.

     ESCAPE
          Siehe CTRL-[

   Kommandos des vi-Kommandomodus

     Den meisten vi-Kommandos können Sie eine ganze Zahl voranstellen. Der
     Standardwert für diese Zahl ist 1, es sei denn, es ist ausdrücklich
     anders angegeben. Die eckigen Klammern in der Beschreibung bedeuten,
     daß die Angabe optional ist. Die eingegebene Zahl wird nicht ange-
     zeigt, sondern beeinflußt nur die Wirkung des nachfolgenden Kommandos.
     Haben Sie eine falsche Zahl angegeben, dann können Sie die Eingabe mit
     ESCAPE löschen.





Seite 27                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     Folgende Fälle sind zu unterscheiden:

     [zahl]kommando
          Durch die Angabe von zahl wird das Kommando zahl-mal ausgeführt.
          zahl ist eine positive ganze Zahl. zahl kann nicht 0 sein, da die
          0 ein vi-Kommando darstellt.

          zahl nicht angegeben:

          vi nimmt für zahl den Wert 1 an.

     [zeile]z
          Der vi positioniert die Zeile mit der Zeilennummer zeile an den
          oberen oder unteren Rand bzw. in die Mitte des Bildschirms (siehe
          ausführliche Beschreibung des vi-Kommandos z).

          zeile nicht angegeben:

          vi positioniert die aktuelle Zeile an den oberen oder unteren
          Rand bzw. in die Mitte des Bildschirms.

     [spalte]|
          Angabe der Spalte, auf die Sie die Schreibmarke positionieren.

     Auf die folgenden vi-Kommandos kann ein Positionierkommando position
     folgen, um einen Bereich anzugeben, der von dem Kommando bearbeitet
     wird: c, d, y, Kleinerzeichen <, Größerzeichen >, Ausrufezeichen ! und
     Gleichheitszeichen =.

     Bei den Kommandos <, >, ! und =, die nur ganze Zeilen bearbeiten, wer-
     den alle Zeilen bearbeitet, die sich ganz oder teilweise im angegebe-
     nen Bereich befinden.

     Bei den Kommandos c, d und y erstreckt sich der zu bearbeitende
     Bereich von der aktuellen Position der Schreibmarke (einschließlich)
     bis zur Position, die die Schreibmarke nach dem Positionierkommando
     hat. Dabei ist entscheidend, ob z. B. wortweise oder zeilenweise posi-
     tioniert wurde. Falls zeilenweise positioniert wurde, werden alle Zei-
     len (einschließlich der aktuellen) als ganze Zeilen bearbeitet. Falls
     wortweise positioniert wurde, wird der Bereich bis vor das Wort (auf
     Wortanfang positioniert) bzw. bis hinter das Wort (auf Wortende posi-
     tioniert) bearbeitet.

     [zahl]a
          (a - append) vi-Eingabemodus einschalten. Der eingegebene Text
          wird hinter der aktuellen Position der Schreibmarke eingefügt.
          Mit zahl können Sie angeben, wieviele Kopien des Textes eingefügt
          werden sollen; der eingefügte Text darf dann aber nicht länger
          als eine Textzeile sein.





Seite 28                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     [zahl]A
          (A - append) vi-Eingabemodus einschalten. Der eingegebene Text
          wird hinter dem Ende der aktuellen Textzeile eingefügt. Durch
          zahl kann angegeben werden, wieviele Kopien des Textes eingefügt
          werden sollen; der eingefügte Text darf dann aber nicht länger
          als eine Textzeile sein. Entspricht $a.

     [zahl]b
          (b - back) Die Schreibmarke wird auf den Anfang des zahl-ten vor-
          hergehenden Wortes in der aktuellen Zeile bewegt.

     [zahl]B
          (B - back) Die Schreibmarke wird zum Anfang des zahl-ten vorher-
          gehenden Langwortes bewegt.

     [zahl]cposition
          (c - change) Textbereich überschreiben.

          Auf dieses Kommando muß eine Positionieranweisung folgen.

          -  Wenn sich die angegebene Position noch in der gleichen Text-
             zeile befindet, wird sie durch das Dollar-Zeichen $ markiert,
             und für den Bereich zwischen der Schreibmarke und $ wird der
             vi-Eingabemodus eingeschaltet. Der Text in diesem Bereich wird
             durch den Text ersetzt, der nun eingegeben wird.

          -  Wenn sich die angegebene Position in einer neuen Textzeile
             befindet, hängt das Verhalten von c davon ab, ob Sie zeilen-
             weise oder nicht zeilenweise positioniert haben. Haben Sie
             zeilenweise positioniert, dann werden alle ganz oder teilweise
             betroffenen Zeilen gelöscht. Haben Sie nicht zeilenweise,
             z. B. wortweise, positioniert, dann wird nur der betreffende
             Bereich gelöscht. In jedem Fall wird der vi in den Eingabemo-
             dus geschaltet. Der gelöschte Text wird durch den Text
             ersetzt, der nun eingegeben wird. Der gelöschte Text wird vom
             vi in den temporären Puffer gesichert, d. h. er kann z. B. mit
             P oder "1P wiederhergestellt werden.

          zahl
             Zahl wirkt als Multiplikator auf den angegebenen Bereich.

     [zahl]cc
          Das Kommando zahlcc bewirkt, daß die aktuelle Zeile bzw. zahl
          Zeilen vollständig überschrieben werden, unabhänging von der
          Position der Schreibmarke in der aktuellen Zeile.

     [zahl]C
          (C - change) Der Rest der aktuellen Zeile wird überschrieben.
          Entspricht zahlc$.





Seite 29                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     [zahl]dposition
     [zahl]dd
          (d - delete) Textbereich löschen.

          Auf dieses Kommando muß eine Positionierungsanweisung folgen. d
          löscht den Bereich von der aktuellen Position der Schreibmarke
          bis zum Ende des angegebenen Bereiches. Wenn mehr als ein Teil
          einer einzigen Zeile gelöscht wird, wird der gelöschte Text in
          den numerierten Puffern 1 - 9 gespeichert, d. h. er kann mit p
          wiederhergestellt werden.

          zahl Zahl wirkt als Multiplikator auf den angegebenen Bereich.

          d    Das Kommando zahldd löscht die aktuelle bzw. zahl Zeilen.

     "Puffer[zahl]dposition
     "Puffer[zahl]dd
          Text löschen und in alphabetischen Puffer sichern.

          Der Text wird von der aktuellen Position der Schreibmarke bis zum
          Ende des angegebenen Bereichs gelöscht, zusätzlich aber in den
          mit Puffer bezeichneten alphabetischen Puffer gesichert. Puffer
          ist ein Groß- oder ein Kleinbuchstabe.

     D    (D - delete) Der Rest der aktuellen Zeile wird gelöscht. Ent-
          spricht d$.

     [zahl]e
          (e - end) Die Schreibmarke wird auf das Ende des zahl-ten Wortes
          positioniert.

     [zahl]E
          (E - end) Die Schreibmarke wird auf das Ende des zahlten Langwor-
          tes positioniert.

     [zahl]fzeichen
          (f - find) Auf f muß ein einzelnes Zeichen folgen. vi durchsucht
          die aktuelle Zeile in Vorwärtsrichtung (nach rechts) nach diesem
          Zeichen und positioniert die Schreibmarke gegebenenfalls auf das
          gefundene Zeichen. Wenn ein Wiederholungsfaktor angegeben wird,
          positioniert vi auf das zahl-te Zeichen.

          Sie wiederholen dieses Suchkommando mit dem Strichpunkt ; in
          Suchrichtung und mit dem Komma , entgegen der Suchrichtung.

     [zahl]Fzeichen
          (F - find) Auf F muß ein einzelnes Zeichen folgen. vi durchsucht
          die aktuelle Zeile in Rückwärtsrichtung (nach links) nach diesem
          Zeichen und positioniert die Schreibmarke gegebenenfalls auf das
          gefundene Zeichen. Wenn ein Wiederholungsfaktor angegeben wird,
          positioniert vi auf das zahl-te Zeichen.



Seite 30                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

          Sie wiederholen dieses Suchkommando mit dem Strichpunkt ; in
          Suchrichtung und mit dem Komma , entgegen der Suchrichtung.

     [zeile]G
          (G - go to) vi positioniert die Schreibmarke auf den Anfang der
          Zeile mit der Nummer zeile.

          zeile nicht angegeben:

          vi positioniert die Schreibmarke auf die letzte Zeile der Datei.

     [zahl]h
          (h - home) Die Schreibmarke wird um zahl Zeichen nach links
          bewegt, jedoch nur in der aktuellen Zeile

     [zahl]H
          (h - home) Die Schreibmarke wird auf den Anfang der ersten Bild-
          schirmzeile positioniert. Wird zahl angegeben, so wird die
          Schreibmarke zu der Zeile bewegt, die um zahl Zeilen vom oberen
          Rand des Bildschirms entfernt ist. Die Schreibmarke wird in bei-
          den Fällen zum ersten Zeichen in der Zeile bewegt, bei dem es
          sich nicht um ein Leer- oder Tabulatorzeichen handelt.

     [zahl]i
          (i - insert) vi-Eingabemodus einschalten. Der eingegebene Text
          wird vor der aktuellen Position der Schreibmarke eingefügt. Mit
          zahl können Sie angeben, wieviele Kopien des Textes eingefügt
          werden sollen. Der eingefügte Text darf dann aber nicht länger
          als eine Textzeile sein.

     [zahl]I
          (I - insert) vi-Eingabemodus einschalten. Der eingegebene Text
          wird vor dem ersten Zeichen in der aktuellen Zeile eingefügt. Mit
          zahl können Sie angeben, wieviele Kopien des Textes eingefügt
          werden sollen. Der eingefügte Text darf dann aber nicht länger
          als eine Textzeile sein.

     [zahl]j
          Die Schreibmarke wird um zahl Textzeilen in der gleichen Spalte
          nach unten bewegt.

          Entspricht CTRL-j und CTRL-n.

     [zahl]J
          (J - join) Die nachfolgende Zeile wird an die aktuelle Zeile
          angehängt, wobei an der Nahtstelle die geeignete Anzahl von Leer-
          oder Tabulatorzeichen eingefügt wird: ein Leerzeichen zwischen
          Wörtern, zwei Leerzeichen nach einem Punkt, kein Leerzeichen,
          wenn das erste Zeichen in der nächsten Zeile eine schließende
          runde Klammer ) ist. Über zahl kann die Anzahl der zusammenzufü-
          genden Zeilen angegeben werden.



Seite 31                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     [zahl]k
          Die Schreibmarke wird um zahl Textzeilen in der gleichen Spalte
          nach oben bewegt.

          Entspricht CTRL-P.

     [zahl]l
          Die Schreibmarke wird um zahl Zeichen nach rechts bewegt, jedoch
          nur in der aktuellen Zeile.

          Entspricht <space>.

     [zahl]L
          (L - last) Die Schreibmarke wird zum ersten Zeichen in der letz-
          ten Textzeile auf dem Bildschirm bewegt, bei dem es sich nicht um
          ein Leer- oder Tabulatorzeichen handelt. Wird zahl angegeben, so
          wird die Schreibmarke zu der Textzeile bewegt, die sich zahl
          Textzeilen oberhalb des unteren Bildschirmrandes befindet.

          Beispiel:

               d3L

               löscht alle Zeilen von der aktuellen Zeile (einschließlich)
               bis zur dritten Textzeile (einschließlich) oberhalb des
               unteren Bildschirmrandes.

     mmarke
          (m - mark) An der aktuellen Position der Schreibmarke wird eine
          Marke gesetzt. Auf m muß ein Kleinbuchstabe marke folgen; mit
          diesem Buchstaben wird die aktuelle Position der Schreibmarke
          markiert.

          Adressieren

          `marke   Mit Gegenhochkomma ` wird die Schreibmarke auf marke
                   bewegt.

          'marke   Mit Hochkomma ' wird die Schreibmarke auf das erste Zei-
                   chen in der Zeile mit marke bewegt.

     M    (M - middle) Die Schreibmarke wird zum ersten Zeichen in der
          mittleren Bildschirmzeile bewegt, bei dem es sich nicht um ein
          Leer- oder Tabulatorzeichen handelt.

     n    Wiederholt das letzte /- bzw. ?-Suchkommando.

     N    Wiederholt das letzte /- bzw. ?-Suchkommando in entgegengesetzter
          Suchrichtung.





Seite 32                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     o    (o - open) vi-Eingabemodus einschalten. Unter der aktuellen Zeile
          wird eine Zeile eingefügt.

     O    (O - open) vi-Eingabemodus einschalten. Oberhalb der aktuellen
          Zeile wird eine neue Zeile eingefügt.

     p    (p - put) Text aus temporärem Puffer holen. Schreibt den Text aus
          dem temporären Puffer hinter die aktuelle Position der Schreib-
          marke. Wenn der Text im Puffer mit den vi-Kommandos, die Zeilen
          bearbeiten (z. B. dd, Y), gesichert wurde, dann wird der Text als
          Zeile zwischen der aktuellen Textzeile und der nächsten Textzeile
          eingefügt.

     "pufferp
          (p - put) Text aus numeriertem oder alphabetischem Puffer holen.

          puffer kann sein:

          -  eine Ziffer von 1-9: der Text wird aus dem entsprechenden
             numerierten Puffer geholt

          -  ein Buchstabe: der Text wird aus dem entsprechenden alphabeti-
             schen Puffer geholt.

     P
     "pufferP
          (P - put) Ähnlich p; der Text wird jedoch vor die aktuelle Posi-
          tion der Schreibmarke bzw. die aktuelle Zeile eingefügt.

     Q    (Q - quit) vi wird beendet, und der ex-Kommandomodus wird einge-
          schaltet. Um in den vi-Kommandomodus zurückzukehren müssen Sie vi
          CR eingeben.

     [zahl]rzeichen
          (r - replace) Das Zeichen, auf dem die Schreibmarke steht, wird
          durch das nächste eingegebene Zeichen zeichen ersetzt. Wird eine
          Zahl angegeben, so werden zahl Zeichen jeweils durch das nächste
          Zeichen ersetzt.

     R    (R - replace) Mehrere Zeichen ersetzen. vi schaltet auf der aktu-
          ellen Position der Schreibmarke in den vi-Eingabemodus Die einge-
          gebenen Zeichen werden jedoch nicht eingefügt, sondern über-
          schreiben jeweils das Zeichen unter der Schreibmarke. Mit ESCAPE
          kann dieser Modus beendet werden.

     [zahl]s
          (s - substitute) Das Zeichen unter der Schreibmarke wird
          gelöscht, und vi wird in den vi-Eingabemodus umgeschaltet. Das
          gelöschte Zeichen wird dann durch den eingegebenen Text ersetzt.
          Über eine Zahl kann angegeben werden, wieviele Zeichen in der
          aktuellen Zeile gelöscht werden sollen. Das letzte zu löschende
          Zeichen wird wie bei c durch ein Dollar-Zeichen $ markiert.


Seite 33                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

          Beispiel:

               5sbla bla bla ESCAPE

               ersetzt das Zeichen unter der Schreibmarke und die vier
               rechts folgenden Zeichen durch die Zeichenkette bla bla bla.
               Das Gleiche erreichen Sie mit:

               c5lbla bla bla ESCAPE

     [zahl]S
          (S - substitute) vi-Eingabemodus einschalten. Ganze Zeilen werden
          ersetzt (entspricht cc). Mit zahl kann angegeben werden, wieviele
          Zeilen ersetzt werden sollen.

     [zahl]tzeichen
          (t - to) Auf t muß ein einzelnes Zeichen folgen. vi durchsucht
          die aktuelle Zeile in Vorwärtsrichtung (nach rechts) nach diesem
          Zeichen. Wenn das Zeichen gefunden wurde, positioniert der vi die
          Schreibmarke unmittelbar vor dieses Zeichen. Wenn Sie einen Wie-
          derholungsfaktor angeben, positioniert vi vor das zahl-te Zei-
          chen. Eine Wiederholung des Suchkommandos mit , bzw. ; ist nicht
          sinnvoll.

     [zahl]Tzeichen
          (T - to) Auf T muß ein einzelnes Zeichen folgen. vi durchsucht
          die aktuelle Zeile in Rückwärtsrichtung (nach links) nach diesem
          Zeichen. Wenn das Zeichen gefunden wurde, positioniert der vi die
          Schreibmarke unmittelbar hinter dieses Zeichen. Wenn Sie einen
          Wiederholungsfaktor angeben, positioniert vi hinter das zahl-te
          Zeichen. Eine Wiederholung des Suchkommandos mit , bzw. ; ist
          nicht sinnvoll.

     u    (u - undo) Das letzte Kommando, durch das der temporäre Puffer
          geändert wurde, wird rückgängig gemacht. Durch ein erneutes u-
          Kommando kann auch das letzte u-Kommando rückgängig gemacht wer-
          den, usw.

          Beispiel:

               d3w  löscht drei Worte ab aktueller Position der Schreib-
                    marke

               u    holt die drei Worte wieder zurück

               u    löscht die drei Worte wieder

          Mit p und P können Sie auf den Inhalt des temporären Puffers
          zugreifen.





Seite 34                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

          Folgt ein u-Kommando auf ein insert-Kommando, mit dem mindestens
          eine neue Textzeile eingefügt wurde, so wird der mit u gelöschte
          Text im numerierten Puffer 1 gesichert.

     U    (U - undo) Die letzten Änderungen an der aktuellen Zeile werden
          rückgängig gemacht. U funktioniert nur, solange Sie die Zeile
          nicht verlassen haben.

     [zahl]w
          (w - word) Die Schreibmarke wird auf den Anfang des zahl-ten Wor-
          tes bewegt.

     [zahl]W
          (W - word) Die Schreibmarke wird auf den Anfang des zahl-ten
          Langwortes bewegt.

     [zahl]x
          Das Zeichen an der aktuellen Schreibmarkenposition wird gelöscht.
          Wird zahl angegeben, so werden, beginnend bei der aktuellen Posi-
          tion der Schreibmarke, zahl Zeichen in der aktuellen Zeile
          gelöscht.

     [zahl]X
          Das Zeichen vor der Schreibmarke wird gelöscht. Wird zahl angege-
          ben, so werden in der aktuellen Zeile zahl Zeichen vor der
          Schreibmarke gelöscht.

     [zahl]yposition
     [zahl]yy
          Text in temporären Puffer sichern

          (y - yank) Auf dieses Kommando muß eine Positionieranweisung fol-
          gen. Der Text von der aktuellen Position der Schreibmarke bis zum
          Ende der angegebenen Position wird in den temporären Puffer
          kopiert.

          zahl zahl wirkt als Multiplikator auf den angegebenen Bereich.

          y    Das Kommando yy bewirkt, daß die aktuelle Zeile vollständig
               in den Puffer gesichert wird.

          Beispiele:

               yw      kopiert von der Position der Schreibmarke bis zum
                       Wortende in den temporären Puffer

               4y3w    12 Worte in den temporären Puffer sichern

               4yy     die aktuelle und drei folgende Textzeilen in den
                       temporären Puffer sichern




Seite 35                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     "puffer[zahl]yposition
     "puffer[zahl]yy
          Text in alphabetischen Puffer sichern

          (y - yank) Ist dem Kommando der Name eines alphabetischen Puffers
          ("puffer) vorangestellt, so wird der Text zusätzlich in diesen
          Puffer gesichert. puffer ist ein Großbuchstabe oder ein Klein-
          buchstabe.

          Beispiele:

               "a4yy   die aktuelle und drei folgende Textzeilen in den
                       alphabetischen Puffer a sichern.

               "ap     Inhalt von a im Anschluß an aktuelle Position ausge-
                       ben

     [zahl]Y
          Zeile(n) in temporären Puffer sichern

          (Y - yank) Eine Kopie der aktuellen Zeile bzw. von zahl Zeilen
          wird in den temporären Puffer gesichert (entspricht yy).

     "puffer[zahl]Y
          Zeile(n) in alphabetischen Puffer sichern

          (Y - yank) Eine Kopie der aktuellen Zeile bzw. von zahl Zeilen
          wird in den mit puffer bezeichneten alphabetischen Puffer gesi-
          chert. puffer ist ein Großbuchstabe oder ein Kleinbuchstabe. Ent-
          spricht "pufferyy.

     [zeile]z[zahl]zeichen
     /Muster/z[zahl]zeichen
          Die durch zeile bzw. Muster bestimmte Textzeile wird auf die
          durch zeichen bestimmte Stelle des Bildschirms positioniert.

          zeichen muß auf z folgen. zeichen kann sein:

          CR oder Plus-Zeichen +
               Positionierung auf den oberen Rand des Bildschirms

          Punkt .
               Positionierung auf die Mitte des Bildschirms

          Minuszeichen -
               Positionierung auf den unteren Rand des Bildschirms

          zeile ist die Zeilennummer der Textzeile, die positioniert wird.

          zeile nicht angegeben:

          Die aktuelle Zeile wird positioniert.


Seite 36                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

          Muster bezeichnet die Zeile, in der Muster zum ersten Mal vor-
          kommt.

          zahl ist eine ganze Zahl zwischen 1 und 23, die auf z folgt. zahl
          gibt die Anzahl der Bildschirmzeilen an, die dargestellt werden
          sollen.

          zahl nicht angegeben:

          zahl = 23.

     ZZ   vi beenden. Wenn am Editorpuffer seit der letzten Sicherung (mit
          dem ex-Kommando w) Änderungen vorgenommen wurden, dann wird der
          Inhalt des Editorpuffers in die Datei mit dem aktuellen Dateina-
          men (siehe ex-Kommando f) gesichert. Entspricht ex-Kommando x.

     [zahl]<space>
          Die Schreibmarke wird um zahl Zeichen nach rechts bewegt (höch-
          stens bis zum Zeilenende).

          Entspricht l.

     [zahl]!position
          Mit Ausrufezeichen ! und einer Positionieranweisung können Sie in
          den vi-Zeilen-Kommandomodus wechseln, um ein Reliant UNIX Kom-
          mando einzugeben. Der Bereich von der aktuellen Zeile bis zur
          angegebenen Zeile wird zur Standard-Eingabe des Reliant UNIX Kom-
          mandos und durch die Ausgabe (Standard-Ausgabe und Standard-Feh-
          lerausgabe) des Reliant UNIX Kommandos ersetzt. Die Zeilen werden
          immer ganz übergeben, nie als Teilzeilen.

          Die Schreibmarke springt erst nach der Eingabe der Positionieran-
          weisung in die Statuszeile. Die Eingabe des Reliant UNIX Komman-
          dos muß mit CR abgeschlossen werden.

          position
               Positionieranweisung auf eine Zeile. Positionieranweisungen
               auf Zeilen sind z. B.:

               3j       3 Zeilen nach unten

               zeileG   auf Zeile mit Zeilennummer zeile positionieren

               L        auf letzte Bildschirmzeile positionieren

               position kann auch ein zweites Ausrufezeichen ! sein. Dann
               wird die aktuelle Zeile als Standard-Eingabe dem Reliant
               UNIX Kommando übergeben. Dem zweiten Ausrufezeichen kann
               eine ganze Zahl vorangestellt werden; damit wird angegeben,
               wieviele Zeilen einschließlich der aktuellen Zeile an das
               Reliant UNIX Kommando übergeben werden.



Seite 37                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

          zahl ist ein Wiederholungsfaktor.

          Beispiele:

               !!wc CR
                    übergibt die aktuelle Zeile als Eingabe an wc und
                    ersetzt sie durch die Ausgabe von wc.

               !1Gsort CR
                    sortiert den Bereich von der aktuellen Zeile bis Datei-
                    anfang.

               3!$tr a b CR
                    ersetzt alle a durch b in der ganzen aktuellen Zeile
                    sowie in den beiden folgenden Zeilen.

     [zahl]$
          Mit Dollar-Zeichen $ wird die Schreibmarke zum Ende der aktuellen
          Zeile bewegt. zahl ist ein Wiederholungsfaktor (mit 2$ z. B. wird
          die Schreibmarke zum Ende der nächsten Zeile bewegt).

     "    Das Anführungszeichen " wird dem Namen eines alphabetischen oder
          numerierten Puffers vorangestellt. Siehe vi-Kommandos d, p und y.

     %    Mit Prozent-Zeichen % wird die Schreibmarke zur korrespondieren-
          den Klammer bewegt. Korrespondierende Klammern sind öffnende und
          schließende runde Klammern ( und ), eckige Klammern [ und ] sowie
          geschweifte Klammern { und }.

     &    Mit dem kommerziellen Und & wird das letzte ex-Kommando s wiede-
          rholt. Entspricht dem ex-Kommando &.

     'marke
          (Hochkomma) Schreibmarke auf markierte Zeile bewegen

          Mit Hochkomma Marke 'marke wird die Schreibmarke zum ersten Zei-
          chen der markierten Zeile bewegt, das kein Leer- oder Tabulator-
          zeichen ist. marke ist ein Kleinbuchstabe, der eine Marke
          bezeichnet, die mit dem vi-Kommando m gesetzt wurde.

          Wird das Hochkomma-Kommando bei einem anderen Kommando als Posi-
          tionierkommando verwendet, werden alle Zeilen im angegebenen
          Bereich als ganze Zeilen behandelt - einschließlich der aktuellen
          und der markierten Zeile.

          Beispiel:

               d'a  Die Zeilen von der aktuellen Zeile bis zur markierten
                    Zeile einschließlich werden gelöscht.

     ''   (doppeltes Hochkomma) Schreibmarke auf vorherige aktuelle Zeile
          bewegen


Seite 38                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

          Durch das Kommando zweifaches Hochkomma '' wird die Schreibmarke
          auf den Anfang der Zeile bewegt, in der sie sich vor der letzten
          Ausführung eines der folgenden vi-Kommandos befunden hat:

          H, L, M, n, N, %, ', (, ), [[, ]], `, {, }, /Muster CR,
          ?Muster CR.

          Wird das Doppelte-Hochkomma-Kommando bei einem anderen Kommando
          als Positionierkommando verwendet, so werden alle Zeilen im ange-
          gebenen Bereich als ganze Zeilen behandelt - einschließlich der
          aktuellen und der markierten Zeile.

          Beispiel:

               d''  Der Bereich von der aktuellen bis zur vorherigen aktu-
                    ellen Zeile wird gelöscht. Vergewissern Sie sich vorher
                    mit '', wo die vorherige aktuelle Zeile war. Wenn keine
                    vorherige aktuelle Zeile existiert, löscht vi von der
                    aktuellen Zeile bis Datei-Anfang. Mit u können Sie den
                    gelöschten Text zurück holen.

     [zahl](
          Mit der öffnenden runden Klammer ( wird die Schreibmarke zurück
          zum Anfang des zahl-ten vorhergehenden Satzes bewegt.

          Ist die ex-Option lisp gesetzt, so wird die Schreibmarke an den
          Anfang eines lisp s-Ausdruckes bewegt (siehe ex, ex-Optionen).
          Auch der Beginn eines Abschnittes oder Absatzes wird als Beginn
          eines Satzes interpretiert (siehe { und [[).

     [zahl])
          Mit der schließenden runden Klammer ) wird die Schreibmarke zum
          Anfang des zahl-ten Satzes bewegt.

     [zahl]+
          Mit dem Pluszeichen + wird die Schreibmarke zum ersten Zeichen in
          der nächsten Zeile bewegt, bei dem es sich nicht um ein Leer-
          oder Tabulatorzeichen handelt. Mit zahl kann angegeben werden, um
          wieviele Zeilen die Schreibmarke in Vorwärtsrichtung bewegt wer-
          den soll (wie bei CTRL-m).

     [zahl],
          Komma , bewirkt die Umkehrung des letzten vi-Kommandos (Suche
          nach einem einzelnen Zeichen):

          f, F, t oder T.

          Die Zeile wird in der entgegengesetzten Richtung durchsucht.
          Durch zahl kann der Wiederholungsfaktor angegeben werden.





Seite 39                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     [zahl]-
          Mit Minuszeichen - wird die Schreibmarke zum ersten Zeichen in
          der zahl-ten vorhergehenden Zeile bewegt, bei dem es sich nicht
          um ein Leer- oder Tabulatorzeichen handelt.

     [zahl].
          Mit Punkt wird das letzte vi-Kommando, das den Editorpuffer ver-
          ändert hat, zahl-mal wiederholt.

          Wenn Ihr letztes Kommando den Inhalt eines numerierten Puffers
          ausgegeben hat, dann gibt ein darauf folgendes Punkt-Kommando den
          Inhalt des numerierten Puffers mit der um eins erhöhten Nummer
          aus usw.

     /Muster CR
          Mit Schrägstrich / wechseln Sie sofort in den vi-Zeilen-
          Kommandomodus, in dem Sie einen regulären Ausdruck Muster angeben
          können. Die Eingabe von Muster beenden Sie mit CR. vi positio-
          niert dann die Schreibmarke vorwärts auf die erste gefundene Zei-
          chenkette, die zu Muster paßt. Wenn keine passende Zeichenkette
          gefunden wird, bleibt die Schreibmarke auf der aktuellen Posi-
          tion. Die Suche kann mit SIGINT beendet werden.

          Standardmäßig ist die ex-Option wrapscan (abgekürzt ws) gesetzt,
          deshalb erfolgt die Suche über Dateiende hinaus und wird am
          Dateianfang fortgesetzt bis die aktuelle Position der Schreib-
          marke wieder erreicht ist. Mit dem ex-Kommando set nows endet die
          Suche am Dateiende (siehe ex, ex-Optionen und ex-Kommando set).

          Mit dem vi-Kommando n wiederholen Sie die Suche in Suchrichtung,
          mit N in Gegenrichtung.

          Wird das Schrägstrich-Kommando bei einem anderen Kommando als
          Positionierkommando verwendet, so wird der Bereich von der Posi-
          tion der Schreibmarke (einschließlich) bis zur angegebenen Posi-
          tion (ausschließlich) bearbeitet.

          Beispiel:

               In einer Zeile steht folgender Text:

               Ein Taucher, der nicht taucht, taugt nix.

               Die Schreibmarke steht auf dem Komma hinter Taucher. Geben
               sie nun ein:

               d/ taugt CR

               Es bleibt:

               Ein Taucher taugt nix.



Seite 40                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     ?    Das Fragezeichen bewirkt eine Suche in Rückwärtsrichtung; ist
          also das Gegenstück zu / (siehe /).

     0    Mit Null 0 wird die Schreibmarke zum ersten Zeichen in der aktu-
          ellen Zeile bewegt. Wenn der Null eine andere Ziffer vorange-
          stellt wird, wird die Null nicht als vi-Kommando interpretiert.

     :    Das vi-Kommando Doppelpunkt : wechselt in den vi-Zeilen-
          Kommandomodus. Hier können Sie nun ein ex-Kommando angeben. Das
          ex-Kommando wird mit CR abgeschickt.

          Falls Sie ein ex-Kommando eingeben wollen, das länger als eine
          Eingabezeile ist, müssen Sie mit Q in den ex-Kommandomodus wech-
          seln.

     [zahl];
          Strichpunkt ; bewirkt die Wiederholung des letzten vi-Kommandos
          (Suche nach einem einzelnen Zeichen):

          f, F, t, T.

          Durch zahl kann der Wiederholungsfaktor angegeben werden.

     [zahl]<position
          Auf Kleinerzeichen < muß ein Positionierkommando auf eine andere
          Zeile folgen. Die Zeilen von der aktuellen Zeile bis einschließ-
          lich der angegebenen Zeile werden um shiftwidth Positionen nach
          links verschoben (siehe ex, ex-Optionen). zahl wirkt als Multi-
          plikator.

          position kann auch ein zweites Kleinerzeichen sein. << bewirkt,
          daß die aktuelle Zeile verschoben wird (oder zahl Zeilen, ein-
          schließlich der aktuellen Zeile).

     [zahl]=position
          Auf das Gleichheitszeichen = muß ein Positionierkommando auf eine
          andere Zeile folgen. Ist die ex-Option lisp gesetzt, so werden
          die Zeilen im angegebenen Bereich so eingerückt, als wäre bei
          ihrer Eingabe auch die Option autoindent gesetzt. Mit zahl kann
          angegeben werden, wieviele Zeilen bearbeitet werden sollen. posi-
          tion kann auch ein zweites Gleichheitszeichen sein. == bewirkt,
          daß die aktuelle Zeile eingerückt wird (oder zahl Zeilen, ein-
          schließlich der aktuellen).

     [zahl]>position
          Das vi-Kommando Größerzeichen > verschiebt Zeilen um shiftwidth
          Positionen nach rechts (siehe <).

     ?    Das Fragezeichen bewirkt eine Suche in Rückwärtsrichtung; ist
          also das Gegenstück zu / (siehe /).

     `marke


Seite 41                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

          (Gegenhochkomma) Schreibmarke auf gesetzte Marke bewegen

          marke ist ein Kleinbuchstabe, der eine Marke bezeichnet, die mit
          dem vi-Kommando m gesetzt wurde. Mit Gegenhochkomma Marke `marke
          wird die Schreibmarke auf das markierte Zeichen positioniert.

          Wird das `-Kommando bei einem anderen Kommando als Positionier-
          kommando verwendet, wird der Bereich zwischen der aktuellen Posi-
          tion der Schreibmarke (einschließlich) und der vorherigen aktuel-
          len Position (ausschließlich) bearbeitet.

     ``   (doppelte Gegenhochkommas) Schreibmarke auf vorherige aktuelle
          Position bewegen

          Durch das Kommando doppeltes Gegenhochkomma `` wird die Schreib-
          marke auf die Position bewegt, auf der sie sich vor der letzten
          Ausführung eines der folgenden vi-Kommandos befunden hat:

          H, L, M, n, N, %, ", (, ), [[, ]], ``, {, }, /Muster CR,
          ?Muster CR.

          Wird das ``-Kommando bei einem anderen Kommando als Positionier-
          kommando verwendet, wird der Bereich zwischen der aktuellen
          Postion der Schreibmarke (einschließlich) und der vorherigen
          aktuellen Position (ausschließlich) bearbeitet.

     [zahl][[
          Mit 2 öffnenden eckigen Klammern wird zurück auf die zahl-te
          Abschnittsgrenze positioniert.

     [zahl]]]
          Mit 2 schließenden eckigen Klammern wird vorwärts auf die zahl-te
          Abschnittsgrenze positioniert.

     ^    Mit Dach ^ wird die Schreibmarke auf das erste Zeichen in der
          aktuellen Zeile bewegt, bei dem es sich nicht um ein Leer- oder
          Tabulatorzeichen handelt.

     [zahl]{
          Mit der öffnenden geschweiften Klammer { wird die Schreibmarke
          zum Anfang des aktuellen Absatzes bewegt. Durch die Angabe von
          zahl kann die Schreibmarke auf den Anfang des zahl-ten Absatzes
          gesetzt werden.

     [zahl]}
          Mit der schließenden geschweiften Klammer } wird die Schreibmarke
          zum Anfang des nächsten Absatzes bewegt. Durch zahl kann ein Wie-
          derholungsfaktor angegeben werden.






Seite 42                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     [spalte]|
          Mit dem senkrechten Strich | wird die Schreibmarke auf die mit
          spalte angegebene Spalte positioniert.

          spalte nicht angegeben: spalte = 1

     ~    Die Tilde ~ bewirkt eine Zeichenkonvertierung. Steht an der aktu-
          ellen Schreibmarke ein Kleinbuchstabe, so wird er in einen Groß-
          buchstaben umgewandelt. Steht an der aktuellen Schreibmarkenposi-
          tion ein Großbuchstabe, so wird er in einen Kleinbuchstaben umge-
          wandelt. Die Schreibmarke bewegt sich anschließend um ein Zeichen
          nach rechts weiter.

ANPASSUNG AN DIE DATENSICHTSTATION
     Die Bildschirmausgabe des vi hängt vom Typ der verwendeten Datensicht-
     station ab. In Reliant UNIX brauchen Sie den vi nicht anzupassen.

     vi benutzt den Inhalt der Umgebungsvariablen TERM, um in einer Daten-
     bank (/usr/lib/terminfo/*/*) die notwendigen Informationen über die
     verwendete Datensichtstation zu finden. Falls TERM nicht definiert ist
     oder Sie an einer Datensichtstation eines anderen Typs arbeiten, müs-
     sen Sie TERM neu setzen. Dazu gibt es verschiedene Möglichkeiten:

     -  Shell-Variable TERM setzen und exportieren

     -  TERM in der Datei .profile definieren und exportieren

     -  ex-Kommando set term ausführen (nur im ex-Kommandomodus möglich)

     -  ex-Kommando set term in die Datei .exrc eintragen

     -  Umgebungsvariable EXINIT in der Datei .profile definieren und
        exportieren

     -  Den Systemverwalter konsultieren

     Vorsicht:
        Geben Sie nur den tatsächlichen Namen Ihrer Datensichtstation für
        TERM an. Falls andere Namen verwendet werden, kann dies zur Störung
        Ihrer Datensichtstation führen.














Seite 43                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

   Voreinstellung des vi

     Voreinstellungen werden mit ex-Optionen gesetzt; beim Kommando ex,
     Abschnitt ex-Optionen, ist beschrieben, welche Voreinstellungen mög-
     lich sind.

     Das ex-Kommando set all listet alle aktuell geltenden Voreinstellungen
     auf, zum Beispiel:

     directory=/tmp      Dateiverzeichnis für Editorpuffer

     nonumber            Zeilennummern werden nicht ausgegeben

     report=5            Meldung bei mehr als 5 veränderten Zeilen

     scroll=11           Bildschirm wird um 11 Zeilen bei CTRL-D verschoben

     noshowmode          Keine Anzeige des vi-Modus

     term=97801          Terminaltyp

     window=23           Bildschirmzeilen für das Textfenster

     wrapmargin=0        Kein automatischer Zeilenumbruch

     Es gibt zwei Typen von Optionen: Optionen mit Booleschen Werten und
     Optionen mit nicht-Boole'schen Werten. Ein Beispiel für den
     Boole'schen Typ ist die Option showmode. Ist sie gesetzt, gibt set all
     die Zeichenkette showmode aus, ist sie nicht gesetzt, gibt set all die
     Zeichenkette noshowmode aus. Bei nicht-Booleschen Typen gibt set all
     den Wert aus, auf den die jeweilige Option gesetzt ist. Ein Beispiel
     für den nicht-Booleschen Typ ist scroll.

     Hinweis:
          Wenn im vi Probleme mit den Pfeiltasten auftreten (z. B. wenn die
          Betätigung der Pfeiltasten zu einem Wechsel vom Eingabe- in den
          Kommandomodus führt), sollte die Option timeout abgeschaltet wer-
          den (set notimeout).

     Sie können den vi an Ihre Bedürfnisse und Gewohnheiten anpassen. Der
     vi kann zum Beispiel Zeilennummern anzeigen oder Sie in der Status-
     zeile informieren, in welchem Modus er sich gerade befindet.

     Wenn Sie die Voreinstellungen des vi ändern möchten, haben Sie dazu
     drei Möglichkeiten:

     -  während einer vi-Sitzung

     -  mit der Umgebungsvariablen EXINIT

     -  mit der Datei .exrc



Seite 44                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

     Möchten Sie sich zum Beispiel die Zeilennummern und den vi-Modus
     anzeigen lassen, haben Sie dazu die nachfolgend aufgeführten Möglich-
     keiten:

     -  Während einer vi-Sitzung:

        Um sich die Zeilennummern anzeigen zu lassen, benutzen Sie während
        einer vi-Sitzung das ex-Kommando set number; mit dem ex-Kommando
        set showmode bewirken Sie, daß der vi Ihnen anzeigt, wenn er sich
        im Eingabemodus befindet. Die Anpassung gilt dann nur für die Dauer
        der Sitzung.

     -  Mit der Umgebungsvariablen EXINIT:

        In die Datei .profile in Ihrem HOME-Dateiverzeichnis müssen Sie
        folgende Zeilen schreiben:

        EXINIT=`set number showmode`
        export EXINIT

        Mit dem Kommando . .profile machen Sie die neue Variable Ihrer
        Shell bekannt. Rufen Sie nun den vi auf, so werden die Zeilennum-
        mern ausgegeben, und der vi zeigt Ihnen an, wenn Sie im Eingabe-
        Modus sind. Diese Voreinstellung ist nun immer wirksam.

     -  Mit der Datei .exrc:

        Diese Datei müssen Sie selbst anlegen. In .exrc definieren Sie
        ständige Voreinstellungen des vi. Damit der vi Zeilennummern aus-
        gibt und den Modus anzeigt, müssen Sie in diese Datei folgende
        Zeile eintragen:

        set number showmode

        Die Datei .exrc muß im HOME-Dateiverzeichnis stehen. .exrc-Dateien
        in Unterdateiverzeichnissen werden aus Sicherheitsgründen vom vi
        nicht ausgewertet. .exrc im HOME-Dateiverzeichnis wird immer gele-
        sen!

     Die für vi definierten Voreinstellungen gelten auch für ex.

     Die Kombination der verschiedenen Möglichkeiten ist erlaubt, unter-
     liegt jedoch gewissen Bedingungen:

     Während einer vi-Sitzung definierte Voreinstellungen haben höchste
     Priorität. Sie können daher während einer Sitzung jederzeit die aktu-
     ellen Voreinstellungen mit dem ex-Kommando set ändern.

     Wenn EXINIT definiert ist, wird die Datei $HOME/.exrc nicht ausgewer-
     tet




Seite 45                     Reliant UNIX 5.44               Gedruckt 11/98

vi(1)                                                                 vi(1)

UMGEBUNGSVARIABLEN
     LINES     Anzahl der Zeilen pro Bildschirm

     TERM      Typ der benutzten Datensichtstation

     EXINIT    Umgebungsvariable mit Voreinstellungen für ex und vi.

INTERNATIONALE UMGEBUNG
     Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
     texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
     ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
     LANG nicht oder als leere Zeichenkette definiert, verhält sich das
     System so, als wäre es nicht internationalisiert.

     Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
     bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
     Bereich der Internationalisierung.

DATEIEN
     $HOME/.exrc
          Datei mit Voreinstellungen für ex und vi. Diese Voreinstellungen
          sind nicht wirksam, wenn EXINIT definiert ist oder während einer
          vi-Sitzung etwas Widersprüchliches definiert wird.

SIEHE AUCH
     edit(1), ex(1).

     el Lozy, M.: Editing in a UNIX Environment. The vi/ex Editor.


























Seite 46                     Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026