Ex (Texteditor)
ex (/usr/bin/ex) ist ein zeilenorientierter Editor und Bestandteil von Unix- und unixartigen Systemen. Er gehört zu einer Familie von Editoren, zu denen interaktiv benutzbare (ed und vi), aber auch solche für den Batchbetrieb (sed) gehören und die voneinander abgeleitet sind.
ex ist in Funktionsumfang und Verhalten normiert durch den POSIX-Standard.[1]
Geschichte
Der originale ex war eine erweiterte Version des – damaligen – Unix-Standardeditors ed, welcher seinerseits Teil der Berkeley Software Distribution (BSD) war. Die Weiterentwicklung ex verbesserte im Vergleich zu ed vor allem die Benutzerfreundlichkeit, ohne allerdings das Grundkonzept des zeilenorientierten Editors anzutasten. Später nahm Bill Joy ex als Grundlage und entwickelte darauf – zuerst in Form eines Makro-Pakets, später als eigenständiges Programm – den Editor vi. Deshalb kann der vi auch mit einem Befehl in einen ex-Modus geschaltet werden.
Benutzung
Konfiguration
Einstellungsmöglichkeiten unterscheiden sich von System zu System aufgrund leicht unterschiedlicher Implementierungen, wenn es auch einen immer vorhandenen, gemeinsamen Grundstock gibt. Alle aktuell gültigen Einstellungen können während der Session durch den Befehl set all angezeigt werden. Das folgende Beispiel zeigt dies wie auch den Programmaufruf selbst auf einem aktuellen AIX-System (oslevel 7100-04-02-1614). Die Hervorhebungen sind im Original nicht vorhanden und dienen lediglich der Verdeutlichung:
$ ex .kshrc ".kshrc" 129/2238 :set all autoindent mesg noshowmode autoprint nomodeline noslowopen noautowrite nonumber tabstop=8 nobeautify nonovice taglength=0 closepunct='".,;)]} nooptimize tags=tags /usr/lib/tags directory=/var/tmp paragraphs=IPLPPPQPP LIpplpipbp backtag noedcompatible partialcharacter=- term=xterm-r5 noerrorbells prompt terse exrc noreadonly timeout noflash redraw ttytype=xterm-r5 hardtabs=8 remap warn history=0 report=5 window=39 noignorecase scroll=19 wrapscan linelimit=1048560 sections=NHSHH HUuhsh+c wrapmargin=0 nolisp shell=/usr/bin/ksh nowriteany nolist shiftwidth=5 wraptype=word magic noshowmatch
Einstellungen sind entweder deklarativer Natur, wo einem Bezeichner ein Wert zugewiesen wird (siehe im Beispiel etwa ttytype) oder logisch. Bei logischen Einstellungen wird traditionell der Bezeichner mit einem vorangestellten no aus- und ohne dieses Präfix eingeschaltet (siehe etwa nonumber, der Befehl set number schaltet die Ausgabe von Zeilennummern ein, set nonumber stellt dieses Verhalten ab).
Die Anweisungen zum Einstellen von ex werden beim Start des Programms aus Dateien entnommen. Systemweite Einstellungen stehen in /etc/exrc. Benutzerbezogene Einstellungen stehen in $HOME/.exrc. Ist die Option exrc gesetzt, wird die Datei ./.exrc ausgewertet.
Einstellungen werden auch aus der Umgebungsvariable EXINIT übernommen.
Oft wird die Funktionalität von ex durch andere Programme zur Verfügung gestellt, z. B. von vim. Dann ändern sich die Dateinamen für die Einstellungen oder es werden zusätzliche Dateien ausgewertet (z. B. /etc/vim/vimrc, $HOME/.vimrc, ./.vimrc).
Interaktive und nicht interaktive Verwendung
Auch wenn ex für die interaktive Benutzung gedacht war, ist es doch möglich, dem Programm eine Liste von Befehlen über stdin (entweder als Pipeline oder als Here-Document) zur automatisierten Abarbeitung zu übergeben. Dies macht es möglich, den Editor ähnlich wie sed für automatisierte Änderungen einzusetzen.
Im folgenden Script-Beispiel wird in allen Dateien in /some/where, deren Name auf txt endet, in solchen non-interaktiven Editorsessions geändert (und zwar jedes Auftreten von "abc" in den ersten drei Zeilen in "XYZ"). Man beachte, dass, im Unterschied zu sed, die geänderte Datei nicht erst in eine temporäre Zwischendatei gespeichert und anschließend über das Original kopiert zu werden braucht:
#!/bin/ksh
typeset chSrc="abc"
typeset chRpl="XYZ"
typeset fTgt=""
for fTgt in /some/where/*txt ; do
ex - "$fTgt" <<-EOF
1,3 s/$chSrc/$chRpl/g
w
EOF
done
Besonderheiten
Auf einigen HP-UX-Systemen kann ex auch durch den Befehl e (das ist dann ein Hardlink auf ex) aufgerufen werden.
Weblinks
ex: text editor – Open Group Base Specificationex(1): ex, vi, view – text editors – OpenBSD General Commands Manual- ex(P): text editor – Debian POSIX Programmer’s Manual
Einzelnachweise
- ↑ ex-Spezifikation der Open Group. Abgerufen am 7. September 2016 (englisch).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.