ex(1) ex(1)
NAME
ex - Zeilenorientierter Editor
SYNTAX
ex [option ...] [datei ...]
BESCHREIBUNG
ex ist ein zeilenorientierter Texteditor. ex bietet Ihnen verschiedene
Bearbeitungsmodi.
⊕ Im ex-Eingabe-Modus können Sie direkt Text eingeben.
⊕ Im ex-Kommando-Modus können Sie Kommandos eingeben, um zum Beispiel
- die Schreibmarke zu positionieren
- Textmuster mit regulären Ausdrücken zu suchen (und zu ersetzen)
- in eine andere Datei zu wechseln
- eine Shell aufzurufen.
Außerdem können Sie vom zeilenorientierten Editor ex in den bild-
schirmorientierten Editor vi wechseln.
Aufbau dieser Beschreibung
Nach der Beschreibung des Aufrufs von ex auf Reliant UNIX Ebene finden
Sie folgende Abschnitte:
⊕ Arbeitsweise des ex
- Modi des ex
- Editor-Puffer sichern und ex verlassen
- Voreinstellung
- Aktuelle und sekundäre Datei
- Reguläre Ausdrücke
- Ersetzungszeichenketten
- Puffer
- Fehler- und Signalbehandlung
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
⊕ ex-Kommandos
- Adressen
- Parameter
- Kommandos
⊕ ex-Optionen
OPTIONEN
-s (s - silent) Alle interaktiven Ausgaben des Editors werden unter-
drückt. Die Option -s setzen Sie, wenn ex seine Kommandos aus
einem Kommandoskript lesen soll.
Die Option -s ersetzt die alte Option -.
-t markierung
(t - tag) Die Datei mit markierung wird von ex zum Editieren auf-
gerufen. ex positioniert dann die Zeile mit der Definition der
Markierung in der Mitte des Bildschirms. Die Suchzeichenketten
für die Definitionen müssen in der Datei tags im gleichen Ver-
zeichnis enthalten sein. Diese Option wird z. B. von C-Program-
mierern dazu verwendet, den Editor beim Aufruf auf die Definition
einer Funktion oder eines Makros zu positionieren. Die dafür
benötigte tags-Datei muß dazu vorher mit dem Kommando ctags(1)
erzeugt worden sein.
-r datei
(r - recover) Stellt Ihre ex-Sitzung von datei wieder her, falls
das System oder ex während der Sitzung abgestürzt ist.
Bei einem Absturz des Systems oder des ex-Editors werden die
Änderungen, die nur im Editor-Puffer stehen, nicht in die Datei
geschrieben. 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 Änderungen, die Sie
vor dem Absturz gemacht haben, in den vi-Puffer geholt. Sie kön-
nen nun die Datei weiter editieren oder die Änderungen in eine
Datei schreiben.
-L Nach einem Absturz des Systems oder des ex-Editors wird eine
Liste aller geretteten Dateien ausgegeben.
-R (R - read-only) datei wird nur zum Lesen geöffnet. Damit können
Sie ein versehentliches Überschreiben von datei verhindern.
Jedoch können Sie den Pufferinhalt im Readonly-Modus in eine
Datei mit anderem Namen schreiben.
Vorsicht: Die Datei kann im ex-Kommando-Modus mit w! dennoch
überschrieben werden.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
-v (v - vi) Der Editor vi wird aufgerufen. Eine ausführliche
Beschreibung des vi finden Sie unter vi(1).
-c kommando
Positioniert beim Aufruf des ex auf eine bestimmte Zeile der zu
editierenden Datei oder führt ein ex-Kommando aus. Wenn Sie auf
eine Zeile positionieren, steht die gewünschte Zeile danach in
der Mitte des Bildschirms. Wenn Sie ein ex-Kommando ausführen
lassen, wird nach Ausführung des ex-Kommandos auf die letzte
Zeile der Datei positioniert - falls das ex-Kommando keine Posi-
tionierung bewirkt (z. B. Suchen).
kommando nicht angegeben:
ex positioniert auf das Ende der Datei.
kommando angegeben:
kommando kann entweder eine Zeilenangabe (n) sein, ein Suchkom-
mando (/muster) oder ein sonstiges Kommando des ex (siehe EX-
KOMMANDOS). Es wird beim Aufruf des ex ausgeführt:
n n ist eine ganze Zahl. ex positioniert auf die n-te Zeile
der Datei.
/muster
ex positioniert auf die Zeile, die muster enthält. Falls
muster Sonderzeichen enthält, müssen Sie die Sonderzeichen
entwerten, damit die Shell diese nicht interpretiert.
'ex-kommando'
"ex-kommando"
ex-kommando kann ein beliebiges ex-Kommando sein. Das ex-
Kommando muß in einfachen Hochkommas oder Anführungszeichen
eingeschlossen werden, damit es von der Shell nicht inter-
pretiert wird. Falls nicht schon durch das ex-Kommando posi-
tioniert wird, positioniert der ex auf die letzte Zeile der
Datei.
Beispiel:
Nach dem Aufruf des ex mit
ex -c /Dienstag termine
wird die Datei termine geöffnet und die Schreibmarke auf die
erste Zeile der Datei positioniert, die das Wort Dienstag
enthält [siehe vi(1)].
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
-x Verschlüsselungsoption: ex führt beim Aufruf das Kommando X auf
und fragt Sie nach einem Schlüssel. Dieser Schlüssel wird dann
zum Ent- und Verschlüsseln von Text durch den Algorithmus des
Kommandos crypt verwendet. ex 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: wie -x, nur daß ex das Kommando C aus-
führt. Das Kommando C entspricht dem Kommando X mit dem Unter-
schied: es wird angenommen, daß jeder zu lesender Text verschlüs-
selt ist [siehe crypt(1)].
datei
Name der Datei, die Sie editieren möchten. Wenn Sie mehrere
Dateien angeben, werden sie in der Reihenfolge bearbeitet, in der
Sie diese angegeben haben. Mit dem ex-Kommando n wechseln Sie in
die nächste Datei.
datei nicht angegeben:
ex öffnet einen leeren Editor-Puffer, in den Sie Text schreiben
können. Erst beim Zurückschreiben des Pufferinhalts mit w (write)
in eine Datei oder durch ein f-Kommando bestimmen Sie deren
Namen.
Vorsicht: Enthält Ihre Datei Nullbytes, dann werden diese von ex
beim Lesen weggeworfen. Eine von ex geschriebene Datei
enthält keine Nullbytes.
ARBEITSWEISE
ex arbeitet immer mit einem Editor-Puffer. Bei Beginn einer ex-Sitzung
wird eine Arbeitskopie der Datei, die Sie bearbeiten, im Editor-Puffer
angelegt. Alle Ihre Änderungen werden zunächst im Editor-Puffer vorge-
nommen. Sie werden erst gesichert, wenn Sie den Pufferinhalt mit w
(write) in die Originaldatei zurückschreiben. Danach können Sie ex mit
q (quit) verlassen.
Wenn Sie ex verlassen wollen, ohne die Änderungen in die Orginaldatei
zurückzuschreiben, müssen Sie q! eingeben, ohne ein vorheriges w.
Ist in den Eingabedateien das ASCII-Zeichen NUL (Nullbyte) [siehe
ascii(5)] enthalten, so wird es gelöscht; in den Ausgabedateien kann
es daher nicht enthalten sein.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
Modi des ex
ex bietet Ihnen zwei Modi zur Bearbeitung einer Datei:
- den ex-Kommando-Modus und
- den ex-Eingabe-Modus.
Zusätzlich können Sie von ex in den vi wechseln, in dem wieder ver-
schiedene Arbeitsmodi zur Verfügung stehen (ausführlicher siehe vi,
Modi des vi).
Nach dem Aufruf befindet ex sich im Kommando-Modus, den Sie am Bereit-
zeichen Doppelpunkt : am Bildschirm erkennen. Mit den Kommandos a
(append), i (insert) und c (change) wechseln Sie in den Eingabe-Modus,
in dem Sie Text im Puffer ergänzen und ändern können (siehe EX-
KOMMANDOS).
Im Eingabe-Modus werden alle folgenden Eingabezeichen, auch verschie-
dene nicht-druckbare Zeichen, in den Puffer geschrieben. Kommandos
werden im Eingabe-Modus nicht als solche interpretiert. Verlassen kön-
nen Sie den Eingabe-Modus, indem Sie in der ersten Spalte einer neuen
Zeile einen Punkt . eingeben und danach RETURN drücken.
Editor-Puffer sichern und ex verlassen
Um den Editor-Puffer zu sichern oder den ex zu verlassen, muß sich der
ex im ex-Kommandomodus befinden.
Mit folgendem Kommando sichern Sie den Inhalt Ihres Editor-Puffers in
die editierte oder eine angegebene Datei:
w [datei]
(w - write) Der Inhalt des Editor-Puffers wird in die angegebene
Datei gesichert.
datei nicht angegeben:
Der Inhalt des Editor-Puffers wird in die editierte Datei
geschrieben.
Um den ex zu verlassen, haben Sie folgende Möglichkeiten:
q (q - quit) ex verlassen. Funktioniert nur, falls noch keine Ände-
rungen am Editor-Puffer vorgenommen wurden oder der geänderte
Editor-Puffer in eine Datei gesichert wurde.
q! (q - quit) ex verlassen; am Editor-Puffer vorgenommene Änderungen
gehen verloren.
x ex verlassen und den geänderten Editor-Puffer in die editierte
Datei schreiben.
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
wq [datei]
(wq - write and quit) ex verlassen und den geänderten Editor-
Puffer in die angegebene Datei datei schreiben.
datei nicht angegeben:
Der Inhalt des Editor-Puffers wird in die editierte Datei
geschrieben.
Vorsicht:
ex gibt keine Warnung aus, wenn Sie beim Verlassen des Editors
noch Text in benannten Puffern haben, die Sie nicht verwendet
haben. Der Text ist unwiederbringlich verloren.
Voreinstellung
Sie können den ex in begrenztem Rahmen an Ihre Bedürfnisse und Gewohn-
heiten anpassen. Dazu müssen Sie das ex-Kommando se (set) verwenden,
mit dem Sie bestimmte Optionen setzen oder verändern können (siehe
EX-OPTIONEN). Diese Änderungen gelten in der aktuellen Sitzung. Wie
Sie diese Änderungen dauerhaft machen können, ist beschrieben bei vi,
Voreinstellung des vi.
Aktuelle und sekundäre Datei
Die Datei, bzw. deren Kopie, die im Augenblick editiert wird, wird als
aktuelle Datei bezeichnet. Die sekundäre Datei ist die Datei, die
zuletzt bei einem Editier-Kommando angegeben wurde. Falls die sekun-
däre Datei zur aktuellen Datei wurde, wird die vorhergehende aktuelle
Datei zur sekundären Datei. Die aktuelle Datei können Sie mit dem Pro-
zentzeichen %, die sekundäre Datei mit dem Nummernzeichen # angeben;
in Dateinamen wird % durch den Namen der aktuellen Datei und # durch
den Namen der sekundären Datei ersetzt.
Beispiel:
w %.bak
sichert die aktuelle Datei in eine Datei mit dem gleichen Namen,
aber der Endung .bak.
Reguläre Ausdrücke
Die Bedeutung von Sonderzeichen in regulären Ausdrücken hängt bei ex
davon ab, ob die Option magic gesetzt ist (vgl. EX-OPTIONEN).
magic gesetzt:
zeichen
Ein einfaches Zeichen steht für sich selbst. Die folgenden Zei-
chen sind keine einfachen Zeichen, sondern Metazeichen:
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
_________________________________________________________________
| ^ | (Dach) am Anfang eines Musters |
|______|_________________________________________________________|
| $ | (Dollar-Zeichen) am Ende eines Musters |
|______|_________________________________________________________|
| * | (Stern) überall außer am Anfang eines Musters |
|______|_________________________________________________________|
| . | (Punkt) an beliebiger Stelle in einem Muster |
|______|_________________________________________________________|
| [ | (öffnende eckige Klammer) an beliebiger Stelle in einem|
| | Muster |
|______|_________________________________________________________|
| ~ | (Tilde) an beliebiger Stelle in einem Muster |
|______|_________________________________________________________|
Metazeichen haben eine besondere Bedeutung und müssen durch einen
Gegenschrägstrich \ entwertet werden, wenn Sie ihre Sonderbedeu-
tung verlieren sollen.
^ Am Anfang eines Musters steht ^ für den Zeilenanfang.
$ Am Ende eines Musters steht $ für das Zeilenende.
. Ein beliebiges Zeichen.
\<
\> Die Zeichen \< passen zum Beginn eines Wortes. Das Wort muß dabei
mit einem Buchstaben, einer Ziffer oder einem Unterstreichungs-
zeichen beginnen; vor dem Wort muß entweder der Zeilenanfang
stehen oder ein Zeichen, das nicht zu den oben aufgeführten
gehört. Die Zeichen \> passen zum Ende eines Wortes.
[zeichenkette]
Ein beliebiges Zeichen aus zeichenkette, wobei zeichenkette eine
nicht leere Folge von Zeichen ist. Innerhalb von zeichenkette
gibt es folgende Sonderbedeutungen:
- Ein Bindestrich - zwischen zwei Zeichen definiert einen
Bereich, zum Beispiel [a-z] paßt zu a, z und allen Zeichen,
die in der ASCII-Sortierreihenfolge dazwischen liegen.
- Ein Dach ^ als erstes Zeichen in zeichenkette kehrt die Bedeu-
tung von [zeichenkette] um: Ein beliebiges Zeichen, das nicht
in zeichenkette enthalten ist.
Diese Sonderbedeutungen können durch einen Gegenschrägstrich auf-
ghoben werden.
* Null-, ein- oder mehrmaliges Auftreten des vorausgehenden regulä-
ren Ausdrucks.
Seite 7 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
~ Paßt zu der Ersetzungszeichenkette, die beim letzten s-Kommando
(substitute, siehe EX-KOMMANDOS) verwendet wurde.
\(muster\)
Ein regulärer Ausdruck muster kann in durch Gegenschrägstrich \
entwertete runde Klammern eingeschlossen werden. Dies dient nur
dazu, den regulären Ausdruck zu identifizieren, wenn er in Erset-
zungszeichenketten verwendet werden soll (siehe Ersetzungszei-
chenketten).
rs Eine Folge rs von zwei regulären Ausdrücken r und s ist wieder
ein regulärer Ausdruck. rs paßt zu allen Zeichenketten, die aus
einer zu r passenden Zeichenkette, gefolgt von einer zu s passen-
den Zeichenkette, bestehen.
nomagic gesetzt:
Ist nomagic gesetzt, so haben nur folgende Zeichen eine Sonderbedeu-
tung:
- Dach ^ am Anfang eines Musters
- Dollar $ am Ende eines Musters sowie
- Gegenschrägstrich \
Folgende Zeichen haben nur dann eine Sonderbedeutung, wenn sie mit
einem führenden Schrägstrich \ entwertet worden sind:
- Punkt .
- Stern *
- öffnende eckige Klammer [
- und Tilde ~
Ersetzungszeichenketten
Das kommerzielle Und & (\& bei nomagic) steht für die Zeichenkette, zu
der das Muster paßt und die daher ersetzt werden soll.
Das Zeichen Tilde ~ (\~ bei nomagic) wird durch die Ersetzungszeichen-
kette des letzten s-Kommandos (substitute) ersetzt.
Die Zeichenkette \n (n ist eine ganze Zahl) wird durch die Zeichen-
kette ersetzt, zu der das im n-ten Klammernpaar \(...\) enthaltene
Muster paßt.
Seite 8 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
Ist in einer Ersetzungszeichenkette die Zeichenkette \u oder \l ent-
halten, so wird das erste Zeichen in der Ersetzungszeichenkette, das
unmittelbar auf \u (upper) oder \l (lower) folgt, in einen Großbuch-
staben (bei u) bzw. Kleinbuchstaben (bei l) umgewandelt, falls es sich
bei diesem Zeichen um einen Buchstaben handelt. Mit den Zeichen \U
oder \L werden alle Buchstaben bis zum Ende der Ersetzungszeichenkette
bzw. bis zu den Zeichen \e oder \E in Groß- bzw. Kleinbuchstaben umge-
wandelt.
Puffer
Es gibt einen unbenannten und 26 alphabetische Puffer.
In diese Puffer kann Text kopiert werden (ya - yank) oder wird
gelöschter Text gesichert (d - delete), der dann mit pu (put) zurück-
geholt werden kann.
Die Kommandos d, pu und ya arbeiten mit dem unbenannten Puffer, wenn
Sie keinen alphabetischen Puffer angeben. D. h. auch wenn Sie z. B.
bei einer Löschoperation keinen Puffer angeben, wird das Ergebnis
Ihrer Löschoperation im unbenannten Puffer gesichert.
Sie können in 26 alphabetischen Puffern Textblöcke sichern. Die Puffer
werden mit den Kleinbuchstaben a-z oder mit den Großbuchstaben A-Z
bezeichnet. Verwenden Sie Kleinbuchstaben, wird der alte Pufferinhalt
mit dem neuen überschrieben, der alte somit gelöscht. Verwenden Sie
Großbuchstaben, wird der alte Pufferinhalt nicht überschrieben, son-
dern der neue Text an den alten angehängt.
Fehler- und Signalbehandlung
Tritt während einer ex-Sitzung ein Fehler auf, so sendet der ex an die
Terminals das Zeichen BEL [akustisches Signal; siehe ascii(5)] und
gibt eine Fehlermeldung aus.
Bei einem Unterbrechungssignal kehrt ex zusätzlich in den ex-
Kommando-Modus zurück. Sie können nun ein ex-Kommando eingeben.
Liest ex die Eingabe aus einer Datei, so wird ex verlassen.
EX-KOMMANDOS
Im Unterschied zu den meisten vi-Kommandos, die sofort vom vi inter-
pretiert und ausgeführt werden, müssen ex-Kommandos mit RETURN abge-
schlossen werden.
Kommandozeilen, die mit Anführungszeichen " beginnen, werden igno-
riert. Auf diese Weise können Sie in ein Kommandoskript Kommentarzei-
len einfügen.
Seite 9 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
Adressen
Mit einer Adresse geben Sie eine bestimmte Zeile an. Einige ex-Komman-
dos erwarten eine oder mehrere Adressen, um dann zum Beispiel die
angegebene Zeile oder den Bereich zwischen zwei angegeben Zeilen ein-
schließlich zu bearbeiten.
Für ex existiert zu jedem Zeitpunkt eine aktuelle Zeile. Sie wird
durch einen Punkt (.) adressiert. Die aktuelle Zeile ist in der Regel
die Zeile, die zuletzt durch ein Kommando bearbeitet wurde oder auf
die gezielt (z. B. durch Suchen) positioniert wurde.
Die Adressen trennen Sie voneinander durch ein Komma (,) oder einen
Strichpunkt (;). Diese Adressenliste arbeitet ex von links nach rechts
ab.
- Durch das Trennzeichen Strichpunkt (;) wird die zuerst adressierte
Zeile zur aktuellen Zeile, erst dann wird die nächste Adresse aus-
gewertet.
- Beim Trennzeichen Komma (,) werden alle Adressen von der aktuellen
Zeile aus ermittelt. Die aktuelle Zeile ändert sich erst bei der
Durchführung eines Kommandos.
Wenn Sie bei einem Kommando mehr Adressen angegeben haben, als das
Kommando erwartet, werden alle Adressen außer der letzten (wenn das
Kommando eine Zeile als Adresse erwartet) oder den letzten beiden
(wenn das Kommando einen Zeilenbereich erwartet) ignoriert. Sind bei
einem Kommando zwei Adressen erforderlich, so muß sich die zuerst
adressierte Zeile im Puffer vor der danach adressierten Zeile befin-
den. Wenn Sie keine Adresse angeben, verwendet ex standardmäßig die
aktuelle Zeile.
. aktuelle Zeile des Puffers.
$ letzte Zeile des Puffers.
n n-te Zeile im Puffer. Die Zeilen sind sequentiell von 1 ab durch-
numeriert.
'x die mit dem Buchstaben x markierte Zeile. x muß ein Kleinbuch-
stabe sein (siehe ex-Kommandos ma bzw. k). 'x ist die Adresse der
markierten Zeile. Bevor ex ein Positionierkommando durchführt,
wird die momentan aktuelle Zeile markiert. Mit 2 Hochkommata ''
können Sie zu ihr zurückkehren.
Seite 10 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
/rA/ Ein einfacher regulärer Ausdruck, in /.../ eingeschlossen [siehe
expressions(5)], adressiert die erste Zeile, beginnend mit der
aktuellen Zeile, die eine Zeichenkette enthält, die zu dem regu-
lären Ausdruck paßt. Falls notwendig, springt ex vom Ende des
Puffers an seinen Anfang, um die Suche fortzusetzen (siehe EX-
OPTIONEN, wrapscan). Soll die zu rA passende Zeile nur ausgegeben
werden, können Sie den zweiten Schrägstrich / weglassen.
rA nicht angegeben:
das zuletzt angegebene Suchmuster wird verwendet.
?rA? Wie /rA/, nur wird rückwärts gesucht.
+n
-n Beginnt eine Adresse mit Plus- oder Minuszeichen, gefolgt von
einer Dezimalzahl n (optional), ist die Zeile adressiert, die n
Zeilen hinter (+) bzw. vor (-) in der aktuellen Zeile liegt. .+3,
+3 und +++ haben die gleiche Wirkung.
adr+
adr- Endet eine Adresse mit einem Plus oder Minus, ist die Zeile
adressiert, die eine Zeile hinter (+) bzw. vor (-) in der durch
die Adresse bezeichneten Zeile liegt. Mit - wird die Zeile vor
der aktuellen Zeile adressiert. Auch am Ende einer Adresse haben
+ und - kumulativen Effekt. Die Adresse ++ adressiert somit die
zweite Zeile, d. h. die Zeile, die auf die aktuelle Zeile folgt;
z. B. adressiert 3++ Zeile 5 oder ++ ist gleichbedeutend mit .+2.
% Das Prozent-Zeichen % ist gleichbedeutend mit dem Adressenpaar
1,$, d. h. dem gesamten Puffer.
Parameter
Bei den ex-Kommandos werden folgende Parameter benutzt:
zeile = adresse
eine bestimmte einzelne Zeile, die Sie in einem der im Abschnitt
Adressen angegebenen Formate angeben können.
zeile nicht angegeben:
der Standardwert Punkt (.) gilt. Punkt (.) ist die aktuelle
Zeile.
Seite 11 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
bereich = adresse,adresse
bereich = adresse;adresse
Angabe eines Bereiches zwischen zwei Zeilen einschließlich. Die
Adressen können durch ein Komma (,) oder einen Strichpunkt (;)
(siehe oben) voneinander getrennt sein. bereich sollten Sie nicht
zusammen mit einer Zahl n angeben, da sonst die letzte Adresse
des angegebenen Bereiches zur Anfangsadresse eines Bereiches
wird, der einschließlich dieser Zeile n Zeilen umfaßt. Damit ist
auf jeden Fall ein Bereich adressiert, der hinter dem gemeinten
bereich liegt. In der Syntax der ex-Kommandos ist dies berück-
sichtigt.
bereich nicht angegeben:
Der Standardwert .,. gilt.
.,. bedeutet: nur die aktuelle Zeile.
n eine positive ganze Zahl. Mit n geben Sie die Anzahl der zu bear-
beitenden Zeilen an.
n nicht angegeben:
der Standardwert 1 gilt.
zusatz
eines oder eine Kombination der ex-Kommandos # (siehe nu), p und
l. Diese Kommandos geben eine Zeile in einem bestimmten Format
aus und werden im Anschluß an das vorangestellte ex-Kommandos
ausgeführt.
<blank>
Die Leerzeichen müssen nicht in jedem Fall eingegeben werden.
Hier sind sie aus Gründen der Übersichtlichkeit nicht als optio-
nal angegeben.
Diese Parameter können mit einer beliebigen Zahl von Plus- oder Minus-
zeichen kombiniert werden.
Seite 12 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
Kommandos
Übersicht der ex-Kommandos und ihrer Abkürzungen
_______________________________________________________________________
| <CTRL-D>| (scroll) | n Zeilen ausgeben, wobei n=$scroll |
|_________|______________|_____________________________________________|
| ab | abbrev | Abkürzung definieren |
|_________|______________|_____________________________________________|
| a | append | Text-Zeile anfügen |
|_________|______________|_____________________________________________|
| ar | args | Argumentliste der Kommandozeile ausgeben |
|_________|______________|_____________________________________________|
| c | change | Text-Zeile ändern |
|_________|______________|_____________________________________________|
| C | encryption | Text verschlüsseln |
|_________|______________|_____________________________________________|
| co | copy | Text-Bereich kopieren |
|_________|______________|_____________________________________________|
| d | delete | Text-Bereich löschen |
|_________|______________|_____________________________________________|
| e | edit | editierte Datei wechseln |
|_________|______________|_____________________________________________|
| f | file | aktuellen Dateinamen ausgeben |
|_________|______________|_____________________________________________|
| g | global | für alle Zeilen, die zu /rA/ passen, Kom- |
| | | mando ausführen |
|_________|______________|_____________________________________________|
| i | insert | Text-Zeile einfügen |
|_________|______________|_____________________________________________|
| j | join | Zeilen verbinden |
|_________|______________|_____________________________________________|
| l | list | Text mit nicht-druckbaren Zeilen ausgeben |
|_________|______________|_____________________________________________|
| map | --- | Makros definieren |
|_________|______________|_____________________________________________|
| k | mark | Zeilen markieren |
|_________|______________|_____________________________________________|
| m | move | Text-Bereich verschieben |
|_________|______________|_____________________________________________|
| ma | mark | Zeilen markieren |
|_________|______________|_____________________________________________|
| n | next | nächste Datei editieren |
|_________|______________|_____________________________________________|
| nu | number | Zeilen numerieren und ausgeben |
|_________|______________|_____________________________________________|
| # | number | Zeilen numerieren und ausgeben |
|_________|______________|_____________________________________________|
| pre | preserve | Editor-Puffer retten |
|_________|______________|_____________________________________________|
Seite 13 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
_______________________________________________________________________
| p | print | Text-Bereich ausgeben |
|_________|______________|_____________________________________________|
| q | quit | Editor verlassen |
|_________|______________|_____________________________________________|
| r | read | Kopie einer Datei in Puffer einlesen |
|_________|______________|_____________________________________________|
| rec | recover | Datei nach Systemabsturz wiederherstellen |
|_________|______________|_____________________________________________|
| rew | rewind | Argumentliste rücksetzen (vgl. ar) |
|_________|______________|_____________________________________________|
| se | set | Optionen ausgeben und setzen |
|_________|______________|_____________________________________________|
| sh | shell | Shell aufrufen |
|_________|______________|_____________________________________________|
| so | source | Kommandos aus Datei lesen |
|_________|______________|_____________________________________________|
| s | substitute | suchen und ersetzen |
|_________|______________|_____________________________________________|
| unab | unabbrev | Definition einer Abkürzung mit ab aufheben |
|_________|______________|_____________________________________________|
| u | undo | Kommando rückgängig machen |
|_________|______________|_____________________________________________|
| unm | unmap | Makrodefinition mit map aufheben |
|_________|______________|_____________________________________________|
| v | --- | wie g, aber für alle Zeilen, die nicht zu |
| | | /rA/ passen |
|_________|______________|_____________________________________________|
| ve | version | Versionsnummer des Editors ausgeben |
|_________|______________|_____________________________________________|
| vi | visual | in vi wechseln |
|_________|______________|_____________________________________________|
| w | write | Editor-Puffer in Datei schreiben |
|_________|______________|_____________________________________________|
| x | exit | Editor verlassen mit Sichern des Editor- |
| | | Puffers |
|_________|______________|_____________________________________________|
| X | encryption | Text verschlüsselen |
|_________|______________|_____________________________________________|
| ya | yank | Zeilen in Puffer kopieren |
|_________|______________|_____________________________________________|
| z | (window) | Text-Bereich ausgeben |
|_________|______________|_____________________________________________|
| ! | (escape) | Shell-Kommando ausführen |
|_________|______________|_____________________________________________|
| & s | (resubst) | wiederholen des letzten substitute- |
| | | Kommandos |
|_________|______________|_____________________________________________|
Seite 14 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
_______________________________________________________________________
| < | (lshift) | Text-Bereich nach links verschieben |
|_________|______________|_____________________________________________|
| > | (rshift) | Text-Bereich nach rechts verschieben |
|_________|______________|_____________________________________________|
| = | (line no) | Zeilennummer ausgeben |
|_________|______________|_____________________________________________|
Kein Kommando angegeben:
Wenn Sie nur zeile oder bereich angeben, so wird automatisch p
(print) ausgeführt. Eine leere Eingabe bewirkt, daß die darauf-
folgende Zeile ausgegeben wird (wie bei .+1p).
<CTRL-D>
(ASCII EOT) gibt die nächsten n Zeilen aus, wobei n den Wert der
ex-Option scroll hat.
ab wort text
(ab - abbreviate) Nur im vi wirksam!
Wenn Sie im vi-Eingabe-Modus wort als komplettes Wort (d. h.
nicht nur als Teil eines Wortes) eingeben, wird es durch die Zei-
chenkette text ersetzt. Falls text Sonderzeichen, z. B. RETURN,
enthalten soll, müssen Sie dem Sonderzeichen CTRL-V voranstellen.
zeile a
(a - append) ex wechselt in den Eingabe-Modus; der Text wird hin-
ter der angegebenen Zeile eingefügt. Bei zeile gleich 0 wird der
Text ganz an den Anfang des Puffers gesetzt. Die aktuelle Zeile
ist die zuletzt eingegebene bzw., falls keine Eingabe erfolgte,
die adressierte Zeile.
Die Eingabe wird mit einem Punkt (.) in der ersten Spalte been-
det.
ar (ar - arguments) Die Argumentliste aus der Kommandozeile des ex-
Aufrufes wird, eingeschlossen in eckigen Klammern [...], ausgege-
ben.
zeile c n
bereich c
(c - change) ex wechselt in den Eingabe-Modus; es werden n Zeilen
bzw. die Zeilen im angegebenen Bereich bereich durch die eingege-
benen Textzeilen ersetzt.
Die letzte der eingegebenen Zeilen wird zur aktuellen Zeile; wer-
den keine Textzeilen eingegeben, so wird der angegebene Bereich
gelöscht, d. h. c wirkt wie d (delete). Die Eingabe wird mit
einem Punkt (.) in der ersten Spalte beendet.
Seite 15 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
C (C - encryption) Das Kommando C entspricht X mit einem Unter-
schied: Es wird angenommen, daß jeder mit den Kommandos e und r
zu lesende Text verschlüsselt ist (siehe Option -C).
bereich co zeile zusatz
(co - copy) Eine Kopie des angegebenen Bereiches bereich wird
hinter die Zeile zeile kopiert; hat zeile die Zeilennummer 0,
wird bereich an den Anfang des Puffers kopiert.
zeile d puffer n
bereich d puffer
(d - delete) Die Zeilen im Bereich bereich bzw. n Zeilen von der
angegebenen Zeile zeile ab werden gelöscht. Wird der Name eines
Puffers puffer angegeben, so werden die gelöschten Zeilen in die-
sem Puffer gesichert. Mit dem ex-Kommando pu können Sie auf die-
sen Puffer zugreifen. Die erste auf die gelöschten Zeilen fol-
gende Zeile wird zur aktuellen Zeile; befanden sich die gelösch-
ten Zeilen am Ende des Puffers, so wird die letzte Zeile im Puf-
fer zur aktuellen Zeile.
e [+zeile] datei
(e - edit) Die Datei datei wird editiert. Wurden am aktuellen
Editor-Puffer seit dem letzten w-Kommando (write) Änderungen vor-
genommen, so wird eine Warnung ausgegeben und das Kommando nicht
ausgeführt. Sie können jedoch die Ausführung des e-Kommandos
erzwingen, indem Sie dem e ein Ausrufezeichen nachstellen: e!
datei. Die letzte Zeile des Puffers wird zur aktuellen Zeile.
Wird dieses Kommando jedoch von vi aus aufgerufen, so wird die
erste Zeile im Puffer zur aktuellen Zeile.
+zeile Die angegebene zeile wird zur aktuellen Zeile. zeile
kann sein:
- eine Zeilennummer n
- das Dollarzeichen $ (Dateiende)
- ein regulärer Ausdruck in der Form /rA oder ?rA.
f [name]
(f - file) Ausgabe des aktuellen Dateinamens sowie Informationen,
wie z. B. die Zahl der Zeilen und die Position der aktuellen
Zeile.
name angegeben:
name wird zum aktuellen Dateinamen
Seite 16 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
bereich g/rA/kommandoliste
(g - global) Zunächst werden alle Zeilen innerhalb des Bereiches
bereich markiert, zu denen das durch rA angegebene Muster paßt.
Dann wird das angegebene Kommando kommando bzw. werden die in
kommandoliste enthaltenen Kommandos ausgeführt, wobei die jeweils
markierte Zeile zur aktuellen Zeile wird.
Die Kommandos in kommandoliste können in mehreren Zeilen stehen,
vorausgesetzt, die Neue-Zeile-Zeichen sind mit einem Gegenschräg-
strich \ entwertet. Ist kommandoliste leer, so werden alle Zeilen
ausgegeben. Die Kommandos a(ppend), c(hange), und i(nsert) sind
erlaubt; am Ende von kommandoliste können Sie den abschließenden
Punkt weglassen. Das visual-Kommando ist ebenfalls erlaubt und
liest die Eingabe vom Terminal.
Folgende Kommandos dürfen in kommandoliste nicht enthalten sein:
global und undo.
Folgende Optionen dürfen in kommandoliste nicht enthalten sein:
autoprint, autoindent und report.
Beispiel:
1,$g/^\*/s//+/
Von Zeile 1 bis Dateiende ($) werden in der ersten Spalte ^ alle
* durch das Substitute-Kommando (s) durch ein Plus-Zeichen (+)
ersetzt.
zeile i
(i - insert) ex wechselt in den Eingabe-Modus; der eingegebene
Text wird vor der angegebenen Zeile eingefügt. Die letzte der
eingegebenen Zeilen wird zur aktuellen Zeile. Erfolgt keine Ein-
gabe, so wird die Zeile vor der adressierten Zeile zeile zur
aktuellen Zeile. Die Eingabe wird mit einem Punkt (.) in der
ersten Spalte beendet.
Seite 17 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
zeile j n zusatz
bereich j zusatz
(j - join) Faßt die mit bereich angegebenen Zeilen bzw. n Zeilen
von zeile ab zu einer Zeile zusammen. Zwischen den ehemaligen
Zeilen steht mindestens ein Leerzeichen. Wird eine Zeile durch
einen Punkt abgeschlossen, so werden zwei Leerzeichen eingesetzt.
Beginnt die anzufügende Zeile mit einer schließenden runden Klam-
mer ), wird kein Leerzeichen eingefügt. Zusätzliche Leer- und
Tabulatorzeichen am Anfang einer Zeile entfallen.
Wird an das Kommando j ein Ausrufezeichen (j!) angehängt, werden
an die Nahtstellen zwischen zwei verbundenen Zeilen keine Leer-
zeichen gesetzt.
zeile l n zusatz
bereich l zusatz
(l - list) Die angegebenen Zeilen werden ausgegeben; Tabulator-
zeichen werden durch ^I ersetzt; das Ende jeder Zeile wird durch
ein Dollarzeichen $ markiert. Der einzige sinnvolle zusatz ist
hier #, wenn den Zeilen ihre Zeilennummern vorangestellt werden
sollen. Die letzte der ausgegebenen Zeilen wird zur aktuellen
Zeile.
map x kommandos Format 1
map! x text Format 2
Nur im vi wirksam!
Format 1: Makrodefinition für vi-Kommando-Modus
Definieren von Makros, die im vi-Kommando-Modus verwendet werden
können. Beim ersten Argument x handelt es sich um ein einzelnes
Zeichen oder die Zeichenkette #n, wobei n eine Ziffer ist, mit
der die Funktionstaste n angegeben wird. Wird im vi-Kommando-
Modus dieses Zeichen bzw. diese Funktionstaste eingegeben, so
verhält vi sich so, als ob kommandos eingegeben wird. kommandos
wird dabei als Folge von vi-Kommandos interpretiert. Sind in kom-
mandos Sonderzeichen, Leerzeichen oder Neue-Zeile-Zeichen enthal-
ten, so müssen sie mit einem CTRL-V entwertet werden.
Beispiel 1:
Sie wollen ein Makro definieren, das in der gesamten Datei das
Zeichen Stern * am Zeilenanfang (Spalte 1) durch ein Leerzeichen
<blank> ersetzt. Der Name dieses Makros soll "Stern" * sein.
Damit Sie dieses Makro stets zur Verfügung haben, machen Sie in
Ihrer .exrc-Datei (siehe Voreinstellung des ex) folgenden Ein-
trag:
:map * :1,$s/^\*/ /
Seite 18 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
Beispiel 2:
Sie möchten die Funktionstaste <F1> belegen. Es soll die nächste
Zeile gesucht werden, an deren Anfang ein bestimmter regulärer
Ausdruck rA steht; diese Zeile soll dann automatisch gelöscht
werden. Dazu geben Sie (aus dem vi-Kommando-Modus) ein:
:map CTRL-V <F1> /^rA CTRL-V RETURN dd RETURN
Format 2: Makrodefinition für vi-Eingabe-Modus
Definieren von Makros, die im vi-Eingabe-Modus verwendet werden
können (vgl. Format 1). Jedes im vi-Eingabe-Modus eingegebene x
wird durch text ersetzt. (Bei dem Kommando ab wird x nur dann
ersetzt, wenn es allein steht.)
Wenn x nicht durch text ersetzt werden soll, muß x ein CTRL-V
vorangestellt werden.
Format 1 und Format 2:
Ein definiertes Makro können Sie mit:
unmap x bzw.
unmap! x
wieder aufheben.
zeile ma x
zeile k x
(ma/k - mark) zeile wird mit x markiert; x muß ein einzelner
Kleinbuchstabe sein, dem ein Leer- oder Tabulatorzeichen vorange-
stellt ist. An der Adresse der aktuellen Zeile ändert sich
nichts.
bereich m zeile
(m - move) bereich wird hinter zeile versetzt. Die erste der ver-
setzten Zeilen wird zur aktuellen Zeile.
n [datei ...]
datei nicht angegeben:
(n - next) Die nächste der in der Kommandozeile aufgeführten
Dateien (Argumentliste) wird editiert (vgl. f und ar). Wurden am
aktuellen Editor-Puffer seit dem letzten w-Kommando (write) Ände-
rungen vorgenommen, so wird eine Warnung ausgegeben und das Kom-
mando nicht ausgeführt. Sie können jedoch die Ausführung des n-
Kommandos erzwingen, indem Sie dem n ein Ausrufezeichen nachstel-
len: n!.
Seite 19 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
datei angegeben:
Die bisherige Argumentenliste wird durch die angegebene(n)
Datei(en) ersetzt; die erste angegebene Datei wird editiert.
zeile nu n zusatz
bereich nu zusatz
zeile # n zusatz
bereich # zusatz
(nu - number) Die Zeilen werden, versehen mit den entsprechenden
Zeilennummern, ausgegeben. Der einzige hier sinnvolle Zusatz ist
l. Die letzte der ausgegebenen Zeilen wird zur aktuellen Zeile.
pre (pre - preserve) Der Inhalt des aktuellen Puffers wird gesichert,
als ob es zu einem Absturz des Systems gekommen wäre. pre wird in
Notfällen verwendet, wenn z. B. w (write) nicht ausgeführt werden
kann, weil die Platte voll ist, und keine andere Möglichkeit zur
Rettung des Pufferinhaltes vorhanden ist.
zeile p n
bereich p
(p - print) Die angegebenen Zeilen werden ausgegeben, wobei
nicht-druckbare Zeichen als Steuerzeichen in der Form ^x ausgege-
ben werden; DEL wird in Form von ^? ausgegeben. Die zuletzt aus-
gegebene Zeile wird zur aktuellen Zeile.
zeile pu puffer
(pu - put) Die mit d (delete) gelöschten oder mit y (yank) in
einem Puffer gesicherten Zeilen werden hinter der angegebenen
Zeile zeile eingefügt. puffer ist der Name eines alphabetischen
Puffers.
puffer nicht angegeben:
Der Text wird aus dem unbenannten Puffer geholt.
q (q - quit) Der Editor wird verlassen. Wurde der Puffer seit dem
letzten w-Kommando (write) verändert, so wird eine Warnung ausge-
geben und q wird nicht ausgeführt. Sie können jedoch die Ausfüh-
rung des q-Kommandos erzwingen, indem Sie dem q ein Ausrufezei-
chen nachstellen: q!. Alle noch nicht (mit w) gesicherten Ände-
rungen am Editor-Puffer gehen dann verloren.
zeile r [datei]
(r - read) Eine Kopie von datei wird im Editor-Puffer hinter
zeile eingelesen. Die Zeilennummer von zeile kann dabei 0 sein;
die Textzeilen werden dann an den Anfang des Puffers gesetzt.
Gibt es keine aktuelle Datei (Aufruf von ex ohne Dateinamen) wird
datei zur aktuellen Datei. Die letzte der eingelesenen Zeilen
wird zur aktuellen Zeile; im vi wird die erste der eingelesenen
Zeilen zur aktuellen Zeile.
Seite 20 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
datei nicht angegeben:
die aktuelle Datei wird eingelesen.
Wird statt datei !unixkmdo angegeben, so wird unixkmdo als Reli-
ant UNIX Kommando interpretiert und an die Shell übergeben. Die
Ausgabe des Reliant UNIX Kommandos wird in den Puffer eingelesen.
rec datei
datei wird nach einem Absturz des Systems oder des Editors wiede-
rhergestellt.
rew (rew - rewind) Die Argumentliste (siehe ar) wird zurückgesetzt,
und die erste Datei in der Liste wird editiert. Wurde der
Editor-Puffer seit dem letzten w-Kommando (write) verändert, so
wird eine Warnung ausgegeben und rew wird nicht ausgeführt. Sie
können jedoch die Ausführung des rew-Kommandos erzwingen, indem
Sie dem rew ein Ausrufezeichen nachstellen: rew!. Alle noch nicht
(mit w) gesicherten Änderungen am Editor-Puffer gehen dann verlo-
ren.
se [parameter]
(se - set) Mit dem set-Kommando können Optionen aufgelistet bzw.
gesetzt werden. Es gibt zwei Typen von Optionen: Optionen mit
Boole'schen Werten und Optionen mit nicht-Boole'schen Werten. Ein
Beispiel für den Boole'schen Typ ist z. B. die Option number. Ist
sie gesetzt, werden Zeilennummern ausgegeben, ist nonumber
gesetzt, werden keine Zeilennummern ausgegeben. Ein Beispiel für
den nicht-Boole'schen Typ ist report. Der Wert dieser Option
(Standard = 5) bestimmt die Anzahl der Zeilen, die durch ein Kom-
mando verändert werden muß, damit ex und vi eine Meldung geben.
parameter
all Die Werte aller Optionen werden ausgegeben.
option?
Der gegenwärtige Wert der angegebenen Option wird ausgege-
ben.
option
Nur für Optionen mit Boole'schen Werten: die Option wird
gesetzt.
nooption
Nur für Optionen mit Boole'schen Werten: die Option wird
nicht gesetzt.
option=wert
Nur für Optionen mit nicht-Boole'schen Werten: der Option
wird der Wert wert zugewiesen.
Seite 21 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
parameter nicht angegeben:
set gibt diejenigen ex-Optionen aus, deren Werte vom Benutzer
festgelegt wurden und daher von den Standardwerten abweichen.
Nähere Informationen über die ex-Optionen finden Sie in EX-
OPTIONEN.
sh Ist die Variable SHELL gesetzt, wird die dort angegebene Shell
gestartet, sonst sh. Nach Beendigung der Shell wird die Editor-
sitzung an derselben Stelle fortgesetzt.
so datei
Kommandos werden aus datei gelesen und ausgeführt. so-Kommandos
können ineinander verschachtelt werden.
zeile s/rA/ersatz/schalter n zusatz
bereich s/rA/ersatz/schalter zusatz
(s - substitute) Das erste Auftreten des mit rA (regulärer Aus-
druck) getroffenen Musters in jeder Zeile des angegebenen Berei-
ches wird durch die Zeichenkette ersatz ersetzt (siehe Reguläre
Ausdrücke und Ersetzungszeichenketten). Der angegebene Bereich
ist entweder bereich oder umfaßt n Zeilen von zeile ab.
schalter
g (g - global) alle Zeichenketten in der Zeile, zu denen rA
paßt, werden ersetzt.
c (c - confirm) zunächst wird die Zeile ausgegeben, wobei die zu
ersetzende Zeichenkette in der darunterliegenden Zeile durch
ein ^ markiert wird. Die Eingabe des Buchstabens y bewirkt
dann, daß die Substitution durchgeführt wird; bei jeder ande-
ren Eingabe wird das Kommando abgebrochen. Die Zeile, in der
zuletzt eine Substitution durchgeführt wurde, wird zur aktuel-
len Zeile.
una wort
(una - unabbreviate) wort wird aus der Liste der Abkürzungen
gestrichen (vgl. ab).
u (u - undo) Die mit dem letzten Editierkommando vorgenommenen
Änderungen werden rückgängig gemacht. g (global) und vi (visual)
werden in diesem Fall als eigenständige Kommandos betrachtet.
Kommandos, die die äußere Umgebung verändern (z. B. w (write), e
(edit) und n (next)) können nicht rückgängig gemacht werden.
Ein undo-Kommando selbst kann mit u wieder rückgängig gemacht
werden.
Bei u gehen alle Markierungen für Zeilen, die geändert und dann
wieder zurückgeholt wurden, verloren.
Seite 22 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
unm x
unm! x
(unm - unmap) Die mit map vorgenommene Definition des Makros x
wird aufgehoben.
bereich v/rA/kommandoliste
(v - vice versa) Hat dieselbe Funktion wie global, nur wird kom-
mandoliste auf alle Zeilen angewandt, zu denen das Muster rA
nicht paßt.
ve Die Versionsnummer des Editors wird ausgegeben.
zeile vi [stelle] n
Bei der angegebenen zeile wird in den vi gewechselt. Der optio-
nale Parameter stelle kann eines der Zeichen Bindestrich (-) oder
Punkt (.) sein; wie beim Kommando z wird damit die Position von
zeile auf dem Bildschirm angegeben. Standard: oberer Rand des
Bildschirms. Mit n wird die Größe des Bildschirms angegeben;
standardmäßig hat er die Größe, die über die ex-Option window
definiert ist. Mit Q wird der vi wieder verlassen und wieder in
den ex gewechselt. Nähere Information siehe vi(1).
[bereich] w[!] [datei] Format 1
[bereich] wq[!] [datei] Format 2
Format 1: In Datei schreiben
(w - write) Der angegebene bereich wird in die datei geschrieben,
wobei die Anzahl der geschriebenen Zeilen und Zeichen ausgegeben
wird.
Wird eine (vorhandene) sekundäre Datei angegeben, so wird das
Kommando nicht ausgeführt, damit die sekundäre Datei nicht verse-
hentlich überschrieben wird. Die Ausführung von w kann jedoch
erzwungen werden, indem ein Ausrufezeichen ! angefügt wird: w! #.
Soll am Ende von datei angefügt werden, so muß das Kommando in
der Form w>> angegeben werden; existiert datei nicht, so wird
eine Fehlermeldung ausgegeben.
Wird statt datei !unixkmdo angegeben, so wird unixkmdo als Reli-
ant UNIX Kommando interpretiert und an die Shell übergeben; der
angegebene bereich ist dann für das Kommando die Standardeingabe.
bereich nicht angegeben:
die ganze aktuelle Datei wird nach datei geschrieben.
Seite 23 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
datei nicht angegeben:
standardmäßig wird die aktuelle Datei verwendet. Wenn weder eine
aktuelle Datei vorhanden ist noch eine datei angegeben wird, so
kann w nicht ausgeführt werden.
Format 2: In Datei schreiben und ex verlassen
(wq - write and quit) wq hat dieselbe Funktion wie w, auf das q
folgt; wq! hat dieselbe Funktion wie w!, auf das q folgt.
x (exit) Der Editor wird verlassen; wurden seit dem letzten Sichern
mit w (write) Änderungen vorgenommen, so werden diese zuvor in
die Datei geschrieben.
X (X - encryption) ex fragt Sie nach einem Schlüssel, der bei nach-
folgenden e, r und w-Kommandos zum Ent- und Verschlüsseln von
Text verwendet wird. Dabei wird der Algorithmus des Kommandos
crypt(1) verwendet. Ein leerer Schlüssel schaltet diesen Mecha-
nismus wieder ab. ex klärt ab, ob der einzulesende Text ver-
schlüsselt ist oder nicht. Die temporäre Pufferdatei wird eben-
falls mit einer Transformation des eingegebenen Schlüssels ver-
schlüsselt (siehe Option -x).
zeile ya puffer n
bereich ya puffer
Der angegebene bereich bzw. n Zeilen von zeile ab werden in den
angegebenen puffer gesichert.
puffer nicht angegeben:
Wird kein Puffer angegeben, so wird der unbenannte Puffer verwen-
det.
zeile z [stelle] n
(window) n Zeilen aus der Umgebung von zeile werden ausgegeben.
n nicht angegeben:
n hat den Wert der Variablen window.
stelle
Für den optionalen Parameter stelle kann ein Bindestrich (-) oder
Punkt (.) angegeben werden; das Zeichen - bewirkt, daß die zeile
an den unteren Rand des ausgegebenen Bereiches gesetzt wird; das
Zeichen (.) bewirkt, daß sich die Zeile in der Mitte des ausgege-
benen Bereiches befindet. Die letzte der ausgegebenen Zeilen wird
zur aktuellen Zeile.
Seite 24 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
stelle nicht angegeben:
zeile befindet sich am oberen Rand des ausgegebenen Bereiches.
Vorsicht:
ex gibt die gewünschte Anzahl realer Zeilen aus. Sind Zeilen län-
ger, wie der Bildschirm breit ist, dann kann unter Umständen mehr
als ein Bildschirm ausgegeben werden.
! kommando
(escape) Die auf das Ausrufezeichen ! folgenden Zeichen werden
als Shell-Kommando interpretiert und an den Kommandointerpreter
übergeben. Wurden am Puffer seit dem letzten w-Kommando (write)
Änderungen vorgenommen, so wird eine Warnung ausgegeben. Dann
wird das Kommando ausgeführt. Wenn die Ausgabe des Kommandos
nicht umgelenkt wird, erscheint sie auf dem Bildschirm, ändert
aber an der Datei nichts. Allerdings kann das Kommando selbst die
Datei ändern, z. B. !cat /etc/profile >> %. Nach erfolgreicher
Ausführung des Kommandos wird ein ! ausgegeben. An der Adresse
der aktuellen Zeile ändert sich nichts.
Kommen in kommando das Prozentzeichen % und das Nummernzeichen #
vor, so werden sie als Dateinamen expandiert (siehe Aktuelle und
sekundäre Datei).
Ein Ausrufezeichen ! in kommando wird durch das vorherige !-
Kommando ersetzt. Mit !! wird also das letzte !-Kommando wiede-
rholt. Die so erweiterten Kommandozeilen werden auf dem Bild-
schirm ausgegeben.
bereich ! kommando
(escape) Bei einem !-Kommando in dieser Form werden die mit
bereich angegebenen Zeilen an kommando als Standardeingabe über-
geben und durch die Ausgabe von kommando ersetzt.
bereich nicht angegeben:
bereich wird nicht durch .,. ersetzt, sondern es gilt die andere
Form des !-Kommandos.
" Kommandozeilen, die mit Anführungszeichen " beginnen, werden
ignoriert. Auf diese Weise können Sie in ein Kommandoskript Kom-
mentarzeilen einfügen.
zeile &schalter n zusatz
bereich&schalter zusatz
zeile sschalter n zusatz
bereichsschalter zusatz
(resubst) Das letzte s-Kommando (substitute) wird wiederholt, als
ob & durch das letzte s/rA/ersatz/ ersetzt würde. Dieselbe Funk-
tion hat ein s-Kommando, in dem /rA/ersatz/ weggelassen wird.
Seite 25 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
zeile < n
bereich <
(lshift) Die Zeilen innerhalb des angegebenen Bereichs bzw. n
Zeilen, die auf zeile folgen, werden um shiftwidth Positionen
nach links verschoben. Leer- und Tabulatorzeichen gehen dabei
verloren; die übrigen Zeichen bleiben unverändert erhalten. Die
letzte der geänderten Zeilen wird zur aktuellen Zeile.
zeile > n
bereich >
(rshift) Die Zeilen innerhalb des angegebenen Bereichs bzw. n
Zeilen, die auf zeile folgen, werden durch Einfügen von Leer- und
Tabulatorzeichen um shiftwidth Positionen nach rechts verschoben.
zeile=
(line number) Die Zeilen-Nummer der angegebenen zeile wird ausge-
geben. Die Position der aktuellen Zeile wird nicht verändert.
zeile nicht angegeben:
Die Zeilen-Nummer der letzten Zeile wird ausgegeben.
EX-OPTIONEN
Mit den Optionen des ex kann das Verhalten der Editoren ex und (vor
allem) vi beeinflußt werden (siehe vi, Voreinstellung des vi).
Für alle Optionen gibt es Standard-Einstellungen, die beim Aufruf von
ex oder vi wirksam werden. Mit dem ex-Kommando se (set) können Sie
sich alle Optionen ausgeben lassen:
set all RETURN
Sie können aber auch mit diesem Kommando eine oder mehrere Optionen
nach Ihren Vorstellungen verändern:
set showmode scroll=15 RETURN
In diesem Fall wird im vi der Eingabe-Modus in der Status-Zeile ange-
zeigt und die Anzahl der Zeilen, um die CTRL-D den Bildschirm rollt,
auf 15 gesetzt.
Mit
set RETURN
werden Ihnen alle Optionen ausgegeben, die von den Standardwerten
abweichen.
Seite 26 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
Es gibt zwei Typen von Optionen: Optionen mit Boole'schen Werten und
Optionen mit nicht-Boole'schen Werten. Ein Beispiel für den
Boole'schen Typ ist z. B. die Option showmode. Ist diese Option nicht
gesetzt, hat sie den Namen noshowmode. Ein Beispiel für den nicht-
Boole'schen Typ ist scroll.
autoindent, ai
noautoindent, noai (Standard)
Ist die Option autoindent gesetzt, so wird im Eingabe-Modus jede
Zeile entsprechend der vorhergehenden Zeile eingerückt (es werden
Leer- und Tabulatorzeichen eingefügt). Der Beginn der Einrückung
wird bestimmt von der Zeile, hinter die angefügt (a,) vor die
eingefügt (i) oder die als erste geändert (c) wird. Zusätzliche
Einrückungen können wie gewöhnlich durchgeführt werden, die fol-
genden Zeilen werden dann automatisch auf die neue Grenze einge-
rückt.
Soll der Text weniger eingerückt werden, so können sie durch Ein-
gabe von CTRL-D den Zeilenanfang um shiftwidth Positionen nach
links verschieben. Mit einem Dach ^, gefolgt von einem CTRL-D,
wird die Einrückung für die aktuelle Zeile aufgehoben; mit einer
Null 0, gefolgt von einem CTRL-D werden alle Einrückungen aufge-
hoben.
autoprint, ap
noautoprint, noap (Standard)
Nach jedem Kommando, mit dem der Inhalt der Editor-Puffers geän-
dert wurde, wird die aktuelle Zeile ausgegeben. Bei globalen
Suchen/Ersetzen-Kommandos (siehe g, s und v) wird autoprint
unterdrückt.
autowrite, aw
noautowrite, noaw (Standard)
Der Inhalt des Editor-Puffers wird in die aktuelle Datei
geschrieben, wenn Änderungen vorgenommen worden sind und eines
der Kommandos e (edit), n (next), rew (rewind) oder ! (escape)
aufgerufen wird.
beautify, bf
nobeautify, nobf (Standard)
Alle Steuerzeichen außer dem Tabulatorzeichen, dem Neue-Zeile-
und dem Formularvorschubzeichen werden aus dem Eingabetext ent-
fernt.
directory=dvz
dir=dvz
Mit dvz wird das Verzeichnis angegeben, in welchem der Editor-
Puffer angelegt werden soll. Hat der Benutzer für dieses Ver-
zeichnis keine Schreiberlaubnis, so wird der Editor verlassen.
Seite 27 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
edcompatible, ed
noedcompatible, noed
Ist das s-Kommando (substitute) mit den Schaltern g und c verse-
hen, so werden diese Schalter gespeichert; die nochmalige Angabe
der Schalter hebt ihre Wirkung auf.
errorbells, eb
noerrorbells, noeb
Vor Fehlermeldungen, die in der letzten Zeile (in der Regel
invers) erscheinen, wird ein Klingelsignal gesendet.
exrc, ex
Diese Option ist aus Sicherheitsgründen nicht wirksam. Sie sollte
bewirken, daß .exrc-Dateien zulässig sind, die im aktuellen Ver-
zeichnis stehen.
flash, fl (Standard)
noflash, nofl
Wenn in der Beschreibung des Terminals ein Eintrag darüber ent-
halten ist, wie am Bildschirm ein optisches Signal erzeugt werden
kann, so wird der Benutzer auf die dort beschriebene Art auf eine
fehlerhafte Eingabe aufmerksam gemacht.
hardtabs=zahl
ht=zahl
Mit dieser Option legen Sie fest, in welchen Schritten auf dem
Terminal Tabulatoren definiert sind (zur Optimierung der Bild-
schirmausgabe).
ignorecase, ic
noignorecase, noic (Standard)
Alle Großbuchstaben im Text werden beim Suchen mit regulären Aus-
drücken wie Kleinbuchstaben behandelt. Gleichfalls werden alle
Großbuchstaben in regulären Ausdrücken wie Kleinbuchstaben behan-
delt, außer in Ausdrücken für Zeichenklassen.
lisp
nolisp (Standard)
Die Option autoindent wird gesetzt und die vi-Kommandos öffnende
runde Klammer (, schließende runde Klammer ), öffnende
geschweifte Klammer {, schließende geschweifte Klammer }, dop-
pelte öffnende eckige Klammern [[ und doppelte schließende eckige
Klammern ]] werden angepaßt.
list
nolist (Standard)
In den ausgegebenen Zeilen werden Tabulatorzeichen durch ^I
ersetzt und das Ende jeder Zeile durch ein $ markiert.
Seite 28 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
magic (Standard)
nomagic
Ändert die Interpretation der in regulären Ausdrücken und Erset-
zungszeichenketten verwendeten Zeichen (siehe Reguläre Ausdrücke
und Ersetzungszeichenketten).
mesg (Standard)
nomesg
Ein-/Ausschalten der Schreiberlaubnis für andere Benutzer auf das
Terminal (z. B. durch das Kommando write).
modelines (Standard)
nomodelines
Die ersten und die letzten fünf Zeilen einer eingelesenen Datei
werden als Editorkommandos betrachtet und ausgeführt, wenn sie
von der Form sind:
ex:kommando:
novice
nonovice (Standard)
Es sollen ausführlichere Fehlermeldungen erzeugt werden.
number, nu
nonumber, nonu (Standard)
Die Zeilen werden mit vorangestellten Zeilennummern ausgegeben.
optimize, opt
nooptimize, noopt (Standard)
Sie können das Terminal so umschalten, daß kein automatischer
Wagenrücklauf erfolgt (zur Optimierung der Ausgabe).
paragraphs=zeichenkette
para=zeichenkette
Dieser Option wird eine Zeichenkette zugewiesen. Jeweils zwei in
dieser Zeichenkette enthaltene Zeichen stehen für den Namen eines
nroff-Makros, das einen Absatz (Paragraphen) einleitet. Ein Makro
wird in einen Text im Format .XX eingetragen, wobei der Punkt (.)
das erste Zeichen der Zeile ist.
prompt (Standard)
noprompt
Ist prompt gesetzt, so wird im Kommando-Modus das Bereitzeichen
Doppelpunkt : angezeigt; andernfalls wird kein Bereitzeichen aus-
gegeben.
readonly
noreadonly (Standard)
Ist readonly gesetzt, so können die zu bearbeitenden Dateien nur
gelesen werden. Veränderungen am Text sind nicht möglich. Ist
noreadonly gesetzt, können Sie in den Dateien Veränderungen vor-
nehmen.
Seite 29 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
redraw (Standard)
noredraw
Werden Änderungen vorgenommen, so sollen diese sofort auf dem
Bildschirm ausgegeben werden. Wegen der großen Menge der ausgege-
benen Daten ist dies jedoch nur sinnvoll, wenn die Daten mit
einer hohen Geschwindigkeit übertragen werden.
remap (Standard)
noremap
Ist remap gesetzt, so werden bei der Makroumsetzung auch Makros
berücksichtigt, die durch andere Makros definiert sind. Die
Umsetzung wird fortgesetzt, bis das gewünschte Makro erstellt
ist. Ist diese noremap gesetzt, so wird lediglich eine einstufige
Umsetzung durchgeführt.
report=n
Wenn die Zahl der Zeilen, die mit dem letzten Kommando geändert,
gelöscht oder kopiert wurde, größer als n ist, erscheint in der
Status-Zeile eine Meldung.
scroll=n
Der bei scroll angegebene Wert n steht für die Anzahl von Zeilen,
um die das Fenster bei einem CTRL-D verschoben werden soll, und
die bei einem z-Kommando (der zweifache Wert von scroll) ausgege-
ben werden sollen.
sections=zeichenkette
sect=zeichenkette
Dieser Option wird eine Zeichenkette zugewiesen. Jeweils zwei in
dieser Zeichenkette enthaltene Zeichen stehen für den Namen eines
nroff-Makros, das einen Abschnitt (Section) einleitet. Ein Makro
wird in einen Text im Format .XX eingetragen, wobei der Punkt (.)
das erste Zeichen der Zeile ist.
shiftwidth=n
sw=n
Der bei sw angegebene Wert n steht für die Schrittweite eines
Software-Tabulators, um die der Text bei gesetzter Option autoin-
dent und den Kommandos Kleinerzeichen < und Größerzeichen > ver-
schoben werden soll.
showmatch, sm
noshowmatch, nosm (Standard)
Wird im vi eine schließende runde Klammer ) oder eine schließende
geschweifte Klammer } eingegeben, so wird die zugehörige ( oder {
angezeigt, falls sie sich noch auf dem Bildschirm befindet.
showmode, smd
noshowmode, nosmd (Standard)
Wenn smd gesetzt ist, wird in der Status-Zeile angezeigt, wenn
sich vi im vi-Eingabe-Modus befindet.
Seite 30 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
slowopen, slow
noslowopen, noslow (Standard)
Im vi soll die Korrektur des Bildschirminhalts während der Ein-
gabe verzögert werden. Dadurch soll der Durchsatz bei nicht
intelligenten Terminals erhöht werden.
tabstop=n
ts=n
n gibt die Software-Tabulatoren an, die vom Editor benutzt wer-
den, um Tabulatoren in der editierten Datei zu expandieren.
taglength=zahl
tl=zahl
Im Zusammenhang mit dem :tag-Kommando wird hier bestimmt, wie-
viele Zeichen für die Suche signifikant sein sollen. Der Wert 0
besagt, daß alle Zeichen berücksichtigt werden.
tags=dateien
Namen der tag-Dateien, durch Leerzeichen getrennt.
term=zeichenkette
zeichenkette beschreibt für vi den zu verwendenden Terminaltyp.
(Standardmäßig wird der Wert der Umgebungsvariable TERM verwen-
det.)
terse
noterse (Standard)
Ist terse gesetzt, so werden gekürzte Fehlermeldungen ausgegeben.
timeout
notimeout
Verzögerungszeit setzen/rücksetzen.
ttytype=zeichenkette
zeichenkette beschreibt für vi den zu verwendenden Terminaltyp.
(Standardmäßig wird der Wert der Umgebungsvariable TERM verwen-
det.)
warn (Standard)
nowarn
Wenn warn gesetzt ist, erscheint bei einem :!-Kommando die War-
nung No write since last change, wenn seit der letzten Sicherung
mit w noch Änderungen am Editor-Puffer erfolgten.
window=n
Die Anzahl der Zeilen in einem Textfenster des vi.
Seite 31 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
wrapmargin=n
wm=n
Nur im vi wirksam. Wenn n > 0 ist, wird an das letzte Wort in
einer Eingabezeile automatisch ein Neue-Zeile-Zeichen angefügt,
so daß das Zeilenende um mindestens n Positionen vom rechten Rand
des Bildschirms entfernt ist.
Mit n=0 (Standard) kann der automatische Zeilenumbruch ausge-
schaltet werden.
wrapscan, ws (Standard)
nowrapscan, nows
Ist wrapscan gesetzt, so wird das Suchen mit /.../ oder ?...?,
wenn das Ende bzw. der Anfang des Editor-Puffers erreicht ist, am
Anfang bzw. Ende fortgesetzt. Falls nows gesetzt ist, wird das
Suchen am Anfang bzw. am Ende der Datei beendet.
writeany, wa
nowriteany, nowa (Standard)
Wenn nowa gesetzt ist, wird bei einem Sicherungskommando w eine
Prüfung auf die Existenz der Datei gemacht. Damit wird verhin-
dert, daß Sie versehentlich eine schon existierende Datei über-
schreiben. Mit w! wird diese Prüfung umgangen. Wenn wa gesetzt
ist, wird nicht geprüft, ob die Datei schon existiert.
FEHLERMELDUNGEN
Tritt bei ex ein Fehler auf, so sendet der Editor an die Terminals das
akustische Signal BEL [siehe ascii(5)] und gibt eine Fehlermeldung
aus. Bei einem Unterbrechungssignal kehrt ex auf die Kommandoebene
zurück, d. h. Sie können ein neues ex-Kommando eingeben. Liest der
Editor die Eingabe aus einer Datei, so bricht ex bei einem Unterbre-
chungssignal ab.
Stellt ex einen internen Fehler fest, so wird versucht, den Puffer zu
retten, wenn die zuletzt vorgenommenen Änderungen noch nicht abgespei-
chert worden sind. Durch einen erneuten Aufruf von ex mit der Option
-r kann auf die gesicherten Daten zurückgegriffen werden.
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.
Seite 32 Reliant UNIX 5.44 Gedruckt 11/98
ex(1) ex(1)
BEISPIELE
Es werden einige ex-Kommandos vorgeführt und erläutert:
$ ex zahlen - ex aufrufen (Dateiname "zahlen")
"zahlen" 4 lines, 20 characters
:set number - Zeilennummern ausgeben
:1,$p - Zeile 1 bis letzte Zeile ausgeben
1 eins - Ursprünglicher Inhalt von "zahlen"
2 zwei
3 drei
4 vier
:1 c 1 - Zeile 1 ändern
1 EINS - Neue Zeile 1
2 . - Eingabemodus verlassen
:2,3 co 4 - Zeile 2 bis 3 hinter Zeile 4 kopieren
6 drei
:1,$ g/zwei/s//ZWEI/ - In der gesamten Datei "zwei" durch "ZWEI"
ersetzen
:2 a - Hinter Zeile 2 neue Zeile einfügen
3 DREI - Neue Zeile 3
4 . - Eingabemodus verlassen
:4 i - Vor Zeile 4 neue Zeile einfügen
4 VIER - Neue Zeile 4
5 . - Eingabemodus verlassen
:5,$ d a - Zeile 5 bis Dateiende löschen und in Puffer a
sichern
4 VIER
:1,$p - Zeile 1 bis letzte Zeile ausgeben
1 EINS
2 ZWEI
3 DREI
4 VIER
:wq - Sichern des Pufferinhalts und ex verlassen
"zahlen" 4 lines, 20 characters
UMGEBUNGSVARIABLEN
TERM In der Umgebungsvariablen TERM muß der Typ des benutzten Ter-
minals festgelegt sein.
EXINIT Umgebungsvariable mit Voreinstellungen für ex und vi. Diese
Voreinstellungen sind immer wirksam.
DATEIEN
$HOME/.exrc
Datei mit Voreinstellungen für ex und vi. Diese Voreinstellungen
sind nicht wirksam, wenn durch EXINIT Widersprüchliches definiert
wird.
SIEHE AUCH
ed(1), edit(1), vi(1).
Seite 33 Reliant UNIX 5.44 Gedruckt 11/98