(command and display editor)
ex ist ein zeilenorientierter Texteditor.
Den ex (außer im Line-Mode) können nur die Benutzer verwenden, die sich über rlogin Zugang zur POSIX-Shell verschafft haben.
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 bildschirmorientierten Editor vi wechseln.
Aufbau dieser Beschreibung
Nach der Beschreibung des Aufrufs von ex auf POSIX-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
ex-Kommandos
Adressen
Parameter
Kommandos
ex-Optionen
Syntax
ex[ option] datei... |
(s - silent) Alle interaktiven Ausgaben des Editors werden unterdrückt. Die Option -s setzen Sie, wenn ex seine Kommandos aus einem Kommandoskript lesen soll. Die Option -s ersetzt die alte Option -.
(t - tag) Die Datei mit markierung wird von ex zum Editieren aufgerufen. 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 Verzeichnis enthalten sein. Diese Option wird z.B. von C-Programmierern dazu verwendet, den Editor beim Aufruf auf die Definition einer Funktion oder eines Makros zu positionieren. Die dafür benötigte tags-Datei muss dazu vorher mit dem Kommando ctags erzeugt worden sein.
(r - recover) Stellt Ihre ex-Sitzung von datei wieder her, falls das System oder ex während der Sitzung abgestürzt ist.
Nach einem Absturz des Systems oder des ex-Editors wird eine Liste aller geretteten Dateien ausgegeben.
Setzt den Wert der ex-Option window (siehe "ex Zeilenorientierter Editor (command and display editor)") auf n fest.
(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. Achtung!
(v - vi) Der Editor vi wird aufgerufen. Eine ausführliche Beschreibung des vi finden Sie in diesem Handbuch (siehe vi).
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 Positionierung bewirkt (z.B. Suchen). kommando nicht angegeben: kommando angegeben:
n ist eine ganze Zahl. ex positioniert auf die n-te Zeile der Datei.
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 kann ein beliebiges ex-Kommando sein. Das ex-Kommando muss in einfachen Hochkommas oder Anführungszeichen eingeschlossen werden, damit es von der Shell nicht interpretiert wird. Falls nicht schon durch das ex-Kommando positioniert wird, positioniert der ex auf die letzte Zeile der Datei. Beispiel Nach dem Aufruf des ex mit
wird die Datei termine geöffnet und die Schreibmarke auf die erste Zeile der Datei positioniert, die das Wort Dienstag enthält (vgl. das Beispiel bei vi).
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: Achtung! |
Arbeitsweise von ex
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 vorgenommen. 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. Ist in den Eingabedateien das ASCII-Zeichen NUL (Nullbyte) (siehe Tabellen und Verzeichnisse, Zeichensatz ISO 646) enthalten, so wird es gelöscht; in den Ausgabedateien kann es daher nicht enthalten sein. |
Modi des ex
ex bietet Ihnen zwei Modi zur Bearbeitung einer Datei:
Zusätzlich können Sie von ex in den vi wechseln, in dem wieder verschiedene Arbeitsmodi zur Verfügung stehen (ausführlicher siehe vi, Modi des vi). Nach dem Aufruf befindet ex sich im Kommando-Modus, den Sie am Bereitzeichen 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 verschiedene nichtdruckbare Zeichen, in den Puffer geschrieben. Kommandos werden im Eingabe-Modus nicht als solche interpretiert. Verlassen können Sie den Eingabe-Modus, indem Sie in der ersten Spalte einer neuen Zeile einen Punkt . eingeben und danach die Eingabetaste drücken. |
Editor-Puffer sichern und ex verlassen
Um den Editor-Puffer zu sichern oder den ex zu verlassen, muss 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 - write) Der Inhalt des Editor-Puffers wird in die angegebene Datei gesichert. datei nicht angegeben: Um den ex zu verlassen, haben Sie folgende Möglichkeiten: (q - quit) ex verlassen. Funktioniert nur, falls noch keine Änderungen am Editor-Puffer vorgenommen wurden oder der geänderte Editor-Puffer in eine Datei gesichert wurde.
(q - quit) ex verlassen; am Editor-Puffer vorgenommene Änderungen gehen verloren.
ex verlassen und den geänderten Editor-Puffer in die editierte Datei schreiben.
(wq - write and quit) ex verlassen und den geänderten Editor-Puffer in die angegebene Datei datei schreiben. datei nicht angegeben: Achtung! |
Voreinstellung
Sie können den ex in begrenztem Rahmen an Ihre Bedürfnisse und Gewohnheiten 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 sekundäre Datei zur aktuellen Datei wurde, wird die vorhergehende aktuelle Datei zur sekundären Datei. Die aktuelle Datei können Sie mit dem Prozentzeichen %, 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
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 Zeichen sind keine einfachen Zeichen, sondern Metazeichen: (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 Sonderbedeutung 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 muss dabei mit einem Buchstaben, einer Ziffer oder einem Unterstreichungszeichen _ beginnen; vor dem Wort muss entweder der Zeilenanfang stehen oder ein Zeichen, das nicht zu den oben aufgeführten gehört. Die Zeichen \> passen zum Ende eines Wortes.
Ein beliebiges Zeichen aus zeichenkette, wobei zeichenkette eine nicht leere Folge von Zeichen ist. Innerhalb von zeichenkette gibt es folgende Sonderbedeutungen:
Diese Sonderbedeutungen können durch einen Gegenschrägstrich aufghoben werden. Null-, ein- oder mehrmaliges Auftreten des vorausgehenden regulären Ausdrucks. Passt zu der Ersetzungszeichenkette, die beim letzten s-Kommando (substitute, siehe ex-Kommandos) verwendet wurde.
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 Ersetzungszeichenketten verwendet werden soll (siehe Abschnitt „Ersetzungszeichenketten“).
Eine Folge rs von zwei regulären Ausdrücken r und s ist wieder ein regulärer Ausdruck. rs passt zu allen Zeichenketten, die aus einer zu r passenden Zeichenkette, gefolgt von einer zu s passenden Zeichenkette, bestehen. nomagic gesetzt: Ist nomagic gesetzt, so haben nur folgende Zeichen eine Sonderbedeutung:
Folgende Zeichen haben nur dann eine Sonderbedeutung, wenn sie mit einem führenden Schrägstrich \ entwertet worden sind:
|
Ersetzungszeichenketten
Das kommerzielle Und & (Gegenschrägstrich kommerzielles Und \& bei nomagic) steht für die Zeichenkette, zu der das Muster passt und die daher ersetzt werden soll. Das Zeichen Tilde ~ (\~ bei nomagic) wird durch die Ersetzungszeichenkette des letzten s-Kommandos (substitute) ersetzt. Die Zeichenkette \n (n ist eine ganze Zahl) wird durch die Zeichenkette ersetzt, zu der das im n-ten Klammernpaar \(...\) enthaltene Muster passt. Ist in einer Ersetzungszeichenkette die Zeichenkette \ u oder \ l enthalten, so wird das erste Zeichen in der Ersetzungszeichenkette, das unmittelbar auf \ u (upper) oder \ l (lower) folgt, in einen Großbuchstaben (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 umgewandelt. |
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ückgeholt 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, sondern 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 Datensichtstation das Zeichen BEL (akustisches Signal; siehe Tabellen und Verzeichnisse, Zeichensatz ISO 646) 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. |
Eingeben von Kommandos
Im Unterschied zu den meisten vi-Kommandos, die sofort vom vi interpretiert und ausgeführt werden, müssen ex-Kommandos mit der Eingabetaste abgeschlossen werden. Kommandozeilen, die mit Anführungszeichen " beginnen, werden ignoriert. Auf diese Weise können Sie in ein Kommando-Skript Kommentarzeilen einfügen. |
Adressen
Mit einer Adresse geben Sie eine bestimmte Zeile an. Einige ex-Kommandos erwarten eine oder mehrere Adressen, um dann zum Beispiel die angegebene Zeile oder den Bereich zwischen zwei angegeben Zeilen einschließ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.
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 muss sich die zuerst adressierte Zeile im Puffer vor der danach adressierten Zeile befinden. Wenn Sie keine Adresse angeben, verwendet ex standardmäßig die aktuelle Zeile.
|
Parameter
Bei den ex-Kommandos werden folgende Parameter benutzt:
eine bestimmte einzelne Zeile, die Sie in einem der im Abschnitt Adressen angegebenen Formate angeben können. zeile nicht angegeben:
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 umfasst. Damit ist auf jeden Fall ein Bereich adressiert, der hinter dem gemeinten bereich liegt. In der Syntax der ex-Kommandos ist dies berücksichtigt. bereich nicht angegeben:
eine positive ganze Zahl. Mit n geben Sie die Anzahl der zu bearbeitenden Zeilen an. n nicht angegeben:
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 Anschluss an das vorangestellte ex-Kommandos ausgeführt. Die Leerzeichen müssen nicht in jedem Fall eingegeben werden. Hier sind sie aus Gründen der Übersichtlichkeit nicht als optional angegeben. Diese Parameter können mit einer beliebigen Zahl von Plus- oder Minuszeichen kombiniert werden. |
Kommandos
Übersicht der ex-Kommandos und ihrer Abkürzungen
Kein Kommando angegeben Wenn Sie nur zeile oder bereich angeben, so wird automatisch p (print) ausgeführt. Eine leere Eingabe bewirkt, dass die darauffolgende 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 - 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 Zeichenkette text ersetzt. Falls text Sonderzeichen, z.B. Neue-Zeile-Zeichen, enthalten soll, müssen Sie dem Sonderzeichen CTRL+V voranstellen.
(a - append) ex wechselt in den Eingabe-Modus; der Text wird hinter 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.
(ar - arguments) Die Argumentliste aus der Kommandozeile des ex-Aufrufes wird, eingeschlossen in eckigen Klammern [...], ausgegeben.
(c - change) ex wechselt in den Eingabe-Modus; es werden n Zeilen bzw. die Zeilen im angegebenen Bereich bereich durch die eingegebenen Textzeilen ersetzt.
(chd/cd - change directory) ex wechselt vom aktuellen Arbeitszeichnis nach directory. directory nicht angegeben:
(co/t - 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.
(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 diesem Puffer gesichert. Mit dem ex-Kommando pu können Sie auf diesen Puffer zugreifen. Die erste auf die gelöschten Zeilen folgende Zeile wird zur aktuellen Zeile; befanden sich die gelöschten Zeilen am Ende des Puffers, so wird die letzte Zeile im Puffer zur aktuellen Zeile.
(e - edit) Die Datei datei wird editiert. Wurden am aktuellen Editor-Puffer seit dem letzten w-Kommando (write) Änderungen vorgenommen, 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:
(f - file) Ausgabe des aktuellen Dateinamens sowie Informationen, wie z.B. die Zahl der Zeilen und die Position der aktuellen Zeile, name angegeben:
(g - global) Zunächst werden alle Zeilen innerhalb des Bereiches bereich markiert, zu denen das durch rA angegebene Muster passt. 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ägstrich \ entwertet. Ist kommandoliste leer, so werden alle Zeilen ausgegeben. Die Kommandos a(ppend), 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
Von Zeile 1 bis Dateiende ($) werden in der ersten Spalte ^ alle * durch das Substitute-Kommando (s) durch ein Plus-Zeichen (+) ersetzt.
(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 Eingabe, so wird die Zeile vor der adressierten Zeile zeile zur aktuellen Zeile. Die Eingabe wird mit einem Punkt . in der ersten Spalte beendet.
(j - join) Fasst 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 Klammer ), wird kein Leerzeichen eingefügt. Zusätzliche Leer- und Tabulatorzeichen am Anfang einer Zeile entfallen. Wird an das Kommando j ein Ausrufezeichen ! angehängt, werden an die Nahtstellen zwischen zwei verbundenen Zeilen keine Leerzeichen gesetzt.
(l - list) Die angegebenen Zeilen werden ausgegeben; Tabulatorzeichen werden durch
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 kommandos Sonderzeichen, Leerzeichen oder Neue Zeile-Zeichen enthalten, 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 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 Eintrag:
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:
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, muss x ein CTRL+V vorangestellt werden. Format 1 und Format 2: Ein definiertes Makro können Sie wieder aufheben mit:
(ma/k - mark) zeile wird mit x markiert; x muss ein einzelner Kleinbuchstabe sein, dem ein Leer- oder Tabulatorzeichen vorangestellt ist. An der Adresse der aktuellen Zeile ändert sich nichts.
(m - move) bereich wird hinter zeile versetzt. Die erste der versetzten Zeilen wird zur aktuellen Zeile.
datei nicht angegeben: datei angegeben:
(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 - 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.
(p - print) Die angegebenen Zeilen werden ausgegeben, wobei nicht-druckbare Zeichen als Steuerzeichen in der Form
(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:
(q - quit) Der Editor wird verlassen. Wurde der Puffer seit dem letzten w-Kommando (write) verändert, so wird eine Warnung ausgegeben und q wird nicht ausgeführt. Sie können jedoch die Ausführung des q-Kommandos erzwingen, indem Sie dem q ein Ausrufezeichen nachstellen: q!. Alle noch nicht (mit w) gesicherten Änderungen am Editor-Puffer gehen dann verloren.
(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. datei nicht angegeben: Wird statt datei !kmdo angegeben, so wird kmdo als POSIX-Kommando interpretiert und an die Shell übergeben. Die Ausgabe des Kommandos wird in den Puffer eingelesen.
datei wird nach einem Absturz des Systems oder des Editors wiederhergestellt.
(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 verloren.
(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 Kommando verändert werden muss, damit ex und vi eine Meldung geben. parameter
die Werte aller Optionen werden ausgegeben.
der gegenwärtige Wert der angegebenen Option wird ausgegeben.
Nur für Optionen mit Boole’schen Werten: die Option wird gesetzt.
Nur für Optionen mit Boole’schen Werten: die Option wird nicht gesetzt.
Nur für Optionen mit nicht-Boole’schen Werten: der Option wird der Wert wert zugewiesen. parameter nicht angegeben: Nähere Informationen über die ex-Optionen finden Sie in ex-Optionen.
Ist die Variable SHELL gesetzt, wird die dort angegebene Shell gestartet, sonst sh. Nach Beendigung der Shell wird die Editorsitzung an derselben Stelle fortgesetzt.
Kommandos werden aus datei gelesen und ausgeführt. so-Kommandos können ineinander verschachtelt werden.
(s - substitute) Das erste Auftreten des mit rA (regulärer Ausdruck) getroffenen Musters in jeder Zeile des angegebenen Bereiches wird durch die Zeichenkette ersatz ersetzt (siehe Reguläre Ausdrücke und Ersetzungszeichenketten). Der angegebene Bereich ist entweder bereich oder umfasst n Zeilen von zeile ab. /rA/ersatz nicht angegeben: schalter
(una - unabbreviate) wort wird aus der Liste der Abkürzungen gestrichen (vgl. ab).
(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.
(unm - unmap) Die mit map vorgenommene Definition des Makros x wird aufgehoben.
(v - vice versa) Hat dieselbe Funktion wie global, nur wird kommandoliste auf alle Zeilen angewandt, zu denen das Muster rA nicht passt.
Die Versionsnummer des Editors wird ausgegeben.
Bei der angegebenen zeile wird in den vi gewechselt. Der optionale 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.
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 versehentlich ü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 muss das Kommando in der Form w>> angegeben werden; existiert datei nicht, so wird eine Fehlermeldung ausgegeben. Wird statt datei !kmdo angegeben, so wird kmdo als POSIX-Kommando interpretiert und an die Shell übergeben; der angegebene bereich ist dann für das Kommando die Standard-Eingabe. bereich nicht angegeben: datei nicht angegeben: 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.
(exit) Der Editor wird verlassen; wurden seit dem letzten Sichern mit w (write) Änderungen vorgenommen, so werden diese zuvor in die Datei geschrieben.
Der angegebene bereich bzw. n Zeilen von zeile ab werden in den angegebenen puffer gesichert. puffer nicht angegeben:
(window) n Zeilen aus der Umgebung von zeile werden ausgegeben. n nicht angegeben: stelle Für den optionalen Parameter stelle können folgende Zeichen angegeben werden:
Die letzte der ausgegebenen Zeilen wird zur aktuellen Zeile. stelle nicht angegeben: Vorsicht: ex gibt die gewünschte Anzahl realer Zeilen aus. Sind Zeilen länger, wie der Bildschirm breit ist, dann kann unter Umständen mehr als ein Bildschirm ausgegeben werden.
(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.
(escape) Bei einem !-Kommando in dieser Form werden die mit bereich angegebenen Zeilen an kommando als Standard-Eingabe übergeben und durch die Ausgabe von kommando ersetzt. bereich nicht angegeben: "
(resubst) Das letzte s-Kommando (substitute) wird wiederholt, als ob & durch das letzte s/rA/ersatz/ ersetzt würde. Dieselbe Funktion hat ein s-Kommando, in dem /rA/ersatz/ weggelassen wird.
(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.
(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.
(line number) Die Zeilen-Nummer der angegebenen zeile wird ausgegeben. Die Position der aktuellen Zeile wird nicht verändert. zeile nicht angegebnen: |
ex-Optionen
Mit den Optionen des ex kann das Verhalten der Editoren ex und (vor allem) vi beeinflusst 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:
Sie können aber auch mit diesem Kommando eine oder mehrere Optionen nach Ihren Vorstellungen verändern:
In diesem Fall wird im vi der Eingabe-Modus in der Status-Zeile angezeigt und die Anzahl der Zeilen, um die CTRL+D den Bildschirm rollt, auf 15 gesetzt. Mit
werden Ihnen alle Optionen ausgegeben, die von den Standard-Werten abweichen. 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 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 folgenden Zeilen werden dann automatisch auf die neue Grenze eingerückt. Soll der Text weniger eingerückt werden, so können Sie durch ein- oder mehrmalige Eingabe von CTRL+D den Zeilenanfang auf die shiftwidth-te Position nach links verschieben. Ist die aktuelle Cursorposition z.B. 25 und shiftwidth auf 10 eingestellt, dann bewirkt die einmalige Eingabe von CTRL+D, dass der Cursor nach links auf die Position 20 rückt und die zweimalige Eingabe von CTRL+D, dass der Cursor zweimal nach links auf die Position 10 rückt. 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 aufgehoben. autoprint, ap Nach jedem Kommando, mit dem der Inhalt der Editor-Puffers geändert wurde, wird die aktuelle Zeile ausgegeben. Bei globalen Suchen/Ersetzen-Kommandos (siehe g, s und v) wird autoprint unterdrückt. autowrite, aw 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 Alle Steuerzeichen außer dem Tabulatorzeichen, dem Neue Zeile- und dem Formularvorschubzeichen werden aus dem Eingabetext entfernt. directory=dvz Mit dvz wird das Dateiverzeichnis angegeben, in welchem der Editor-Puffer angelegt werden soll. Hat der Benutzer für dieses Dateiverzeichnis keine Schreiberlaubnis, so wird der Editor verlassen. edcompatible, ed Ist das s-Kommando (substitute) mit den Schaltern g und c versehen, so werden diese Schalter gespeichert; die nochmalige Angabe der Schalter hebt ihre Wirkung auf. errorbells, eb 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, dass .exrc-Dateien zulässig sind, die im aktuellen Dateiverzeichnis stehen. flash, fl (Standard) Wenn in der Beschreibung des Terminals ein Eintrag darüber enthalten 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 Mit dieser Option legen Sie fest, in welchen Schritten auf dem Terminal Tabulatoren definiert sind (zur Optimierung der Bildschirmausgabe). ignorecase, ic Alle Großbuchstaben im Text werden beim Suchen mit regulären Ausdrücken wie Kleinbuchstaben behandelt. Gleichfalls werden alle Großbuchstaben in regulären Ausdrücken wie Kleinbuchstaben behandelt, außer in Ausdrücken für Zeichenklassen. lisp Die Option autoindent wird gesetzt und die vi-Kommandos öffnende runde Klammer (, schließende runde Klammer ), öffnende geschweifte Klammer {, schließende geschweifte Klammer }, doppelte öffnende eckige Klammern [[ und doppelte schließende eckige Klammern ]] werden angepasst. list In den ausgegebenen Zeilen werden Tabulatorzeichen durch magic (Standard) Ändert die Interpretation der in regulären Ausdrücken und Ersetzungszeichenketten verwendeten Zeichen (siehe Reguläre Ausdrücke und Ersetzungszeichenketten). mesg (Standard) Ein-/Ausschalten der Schreiberlaubnis für andere Benutzer auf das Terminal (z.B durch das Kommando write). modelines (Standard) Die ersten und die letzten fünf Zeilen einer eingelesenen Datei werden als Editorkommandos betrachtet und ausgeführt, wenn sie von der Form sind: novice Es sollen ausführlichere Fehlermeldungen erzeugt werden. number, nu Die Zeilen werden mit vorangestellten Zeilennummern ausgegeben. optimize, opt Sie können das Terminal so umschalten, dass kein automatischer Wagenrücklauf erfolgt (zur Optimierung der Ausgabe). paragraphs=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) Ist prompt gesetzt, so wird im Kommando-Modus das Bereitzeichen Doppelpunkt : angezeigt; andernfalls wird kein Bereitzeichen ausgegeben. readonly 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 vornehmen. redraw (Standard) Werden Änderungen vorgenommen, so sollen diese sofort auf dem Bildschirm ausgegeben werden. Wegen der großen Menge der ausgegebenen Daten ist dies jedoch nur sinnvoll, wenn die Daten mit einer hohen Geschwindigkeit übertragen werden. remap (Standard) 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) ausgegeben werden sollen. sections=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 Der bei sw angegebene Wert n steht für die Schrittweite eines Software-Tabulators um die der Text bei gesetzter Option autoindent und den Kommandos Kleinerzeichen < und Größerzeichen > verschoben werden soll. showmatch, sm 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 Wenn smd gesetzt ist, wird in der Status-Zeile angezeigt, wenn sich vi im vi-Eingabe-Modus befindet. slowopen, slow Im vi soll die Korrektur des Bildschirminhalts während der Eingabe verzögert werden. Dadurch soll der Durchsatz bei nicht intelligenten Datensichtstationen erhöht werden. tabstop=n n gibt die Software-Tabulatoren an, die vom Editor benutzt werden, um Tabulatoren in der editierten Datei zu expandieren. taglength=zahl Im Zusammenhang mit dem :tag-Kommando wird hier bestimmt, wieviele Zeichen für die Suche signifikant sein sollen. Der Wert 0 besagt, dass 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 verwendet.) terse Ist terse gesetzt, so werden gekürzte Fehlermeldungen ausgegeben. timeout Verzögerungszeit setzen/rücksetzen. ttytype=zeichenkette zeichenkette beschreibt für vi den zu verwendenden Terminaltyp. (Standardmäßig wird der Wert der Umgebungsvariable TERM verwendet.) warn (Standard) Wenn warn gesetzt ist, erscheint bei einem :!-Kommando die Warnung 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. wrapmargin=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 dass das Zeilenende um mindestens n Positionen vom rechten Rand des Bildschirms entfernt ist. Mit n=0 (Standard) kann der automatische Zeilenumbruch ausgeschaltet werden. wrapscan, ws (Standard) 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 Wenn nowa gesetzt ist, wird bei einem Sicherungskommando w eine Prüfung auf die Existenz der Datei gemacht. Damit wird verhindert, dass Sie versehentlich eine schon existierende Datei überschreiben. Mit w! wird diese Prüfung umgangen. Wenn wa gesetzt ist, wird nicht geprüft, ob die Datei schon existiert. |
Fehler
Tritt bei ex ein Fehler auf, so sendet der Editor an die Datensichtstation das akustische Signal BEL (siehe Tabellen und Verzeichnisse, Zeichensatz ISO 646) 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 Unterbrechungssignal ab. Stellt ex einen internen Fehler fest, so wird versucht, den Puffer zu retten, wenn die zuletzt vorgenommenen Änderungen noch nicht abgespeichert worden sind. Durch einen erneuten Aufruf von ex mit der Option -r kann auf die gesicherten Daten zurückgegriffen werden. |
Datei
$HOME/.exrc Datei mit Voreinstellungen für ex und vi. Diese Voreinstellungen sind nicht wirksam, wenn durch EXINIT Widersprüchliches definiert wird. |
Variable
TERM In der Umgebungsvariablen TERM muss der Typ der benutzten Datensichtstation festgelegt EXINIT Umgebungsvariable mit Voreinstellungen für ex und vi. Diese Voreinstellungen sind immer wirksam. LINES Wenn diese Variable gesetzt ist, dann wird ihr Wert für die Berechnung der Spaltenzahl für die Ausgabe von select-Listen verwendet. select-Listen werden vertikal ausgegeben, bis ungefähr zwei drittel der Zeilenzahl LINES gefüllt sind. COLUMNS Wenn diese Variable gesetzt ist, dann wird ihr Wert für die Definition der Breite des Editierfensters beim Editiermodus der POSIX-Shell und für die Ausgabe der select-Liste verwendet. Diese Variable ist sinnvoll, wenn der Zugang zur POSIX-Shell über rlogin erfolgt. PATH Der Suchpfad für Shell-Kommandos, die in den Editorkommandos shell, read und write angegeben werden können. HOME Legt das Dateiverzeichnis fest, in dem nach der Editor Startup-Datei mit dem Namen .exrc gesucht wird. SHELL Der Kommandozeilen-Interpreter, der bei !, shell, read oder anderen Kommandos mit einem Operanden der Form !string verwendet wird. Für das shell Kommando wird das Programm nur dem -i Argument aufgerufen, bei allen anderen mit zwei Argumenten -c und string. Ist SHELL nicht gesetzt oder hat den Wert 0, wird sh verwendet. |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos ex: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_COLLATE Legt die internationale Umgebung für die Sortierreihenfolge in Bereichen, Äquivalenzklassen und Zeicheneinheiten in regulären Ausdrücken fest. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Siehe auch
ed, vi |