Wer sich näher mit den historischen Unix-Editoren befasst, stellt schnell fest, dass Vi und Ex trotz ihrer Gemeinsamkeiten auch unterschiedliche Einsatzzwecke abdecken. Ihre Langlebigkeit zeugt davon, wie grundlegend sie in Unix-basierten Systemen verankert sind. Mit ihnen lässt sich praktisch jede Text- oder Konfigurationsdatei bearbeiten, selbst wenn kaum Ressourcen oder nur eine minimalistische Umgebung zur Verfügung stehen.
Warum überhaupt Ex und Vi lernen?
In einer Zeit, in der grafische Editoren allgegenwärtig sind, mag es paradox klingen, sich an zeilenbasierte oder modale Editoren zu gewöhnen. Dennoch existieren gute Gründe, warum Ex und Vi weiterhin beliebt sind. Allen voran bietet Ex eine hervorragende Möglichkeit, Textoperationen zu automatisieren. Mit nur wenigen Zeilen in einem Shell-Skript lassen sich beispielsweise weitreichende Änderungen in großen Dateien durchführen. Vi ergänzt dieses Konzept um einen visuellen Arbeitsmodus, der sich ideal für interaktive Bearbeitung ohne aufwendige grafische Benutzeroberfläche eignet.
Zudem existieren viele Unix-Systeme, die nur sehr beschränkte Kommandosätze und Editierwerkzeuge mitbringen. Hier sind Vi und Ex essenziell, da sie praktisch immer in der Standardinstallation vorhanden sind. Das bedeutet, selbst auf Embedded-Geräten oder in minimal konfigurierten Docker-Containern findet man meist Vi oder Ex, was ihre Relevanz für DevOps- und Systemadministrations-Workflows unterstreicht.

Zusammenspiel mit Shell-Skripten
Die eigentliche Stärke von Ex entfaltet sich häufig im Zusammenspiel mit Shell-Skripten. Befehle wie :g
oder :s
können direkt in Skripten benutzt werden, um wiederkehrende Bearbeitungsschritte in Textdateien durchzuführen. Beispiel: Möchte man in mehreren Protokolldateien einen String durch einen anderen ersetzen, kann man ex -c 'g/AlterString/s//NeuerString/g' -c 'wq' datei.txt
nutzen und diesen Aufruf in einer Schleife über verschiedene Dateien ausführen.
Der Verzicht auf einen interaktiven Modus erweist sich dabei als Vorteil: Das Skript muss nicht auf Nutzerinteraktionen warten, wodurch Automatisierungsprozesse beschleunigt werden. Hinzu kommt, dass Ex durch sein zeilenbasiertes Konzept in Umgebungen mit sehr geringen Ressourcen lauffähig ist und sich perfekt für Batch-Verarbeitungen eignet.
Die Rolle von Vi in der modernen Entwicklungswelt
Bei Vi stehen Geschwindigkeit, Ergonomie und Flexibilität im Vordergrund. Viele Entwickler erfreuen sich an den kurzen Befehlen und der Tastaturorientierung, die ein schnelles Navigieren und Bearbeiten von Text ermöglicht. Besonders in Situationen, in denen die Maus oder eine grafische Umgebung nicht verfügbar sind, wird dies deutlich. Wer mit Remote-Servern arbeitet, kann mithilfe von Vi rasch Fehlermeldungen analysieren oder Konfigurationen anpassen, ohne erst auf grafische Editoren zurückzugreifen.
Darüber hinaus lassen sich viele Aufgaben in Vi durchführen, ohne den Editor verlassen zu müssen. Mithilfe des Befehls :!cmd
ist es möglich, direkt aus Vi heraus Shell-Kommandos auszuführen. So kann man etwa Dateien komprimieren, Suchen und Ersetzen mit grep
oder sed
verbinden oder ganze Skripte starten, während man weiter an der betreffenden Konfigurationsdatei arbeitet.

Erweiterte Befehle in Ex und Vi
Ex und Vi behalten im Kern die gleichen Befehlssätze bei, da Vi historisch auf Ex aufbaut. Dennoch nutzt Vi zur Steuerung des Cursors und anderer Funktionen einen Vollbildmodus. Während dieser Modus vor allem für interaktive Anwender interessant ist, bietet Ex einen klaren Vorteil für jene, die automatisiert vorgehen. Hier einige Beispiele, die both Editoren gemeinsam nutzen können:
- :g – Sucht nach Zeilen mit einem bestimmten Muster und wendet einen darauf folgenden Befehl an.
- :s – Ersetzen von Text in der aktuellen Zeile oder einem definierten Textbereich.
- y, d, p (in Vi) – Kopieren (y), Löschen (d) und Einfügen (p) erlauben schnelle Bearbeitungen ohne externes Tool.
- :r !cmd (in Vi) – Fügt die Ausgabe eines Shell-Kommandos direkt in das Textdokument ein.
Gerade die letzten beiden Punkte zeigen, wie eng Vi und Ex mit der Unix-Philosophie verzahnt sind. Das Ein- und Ausleiten von Befehlen direkt im Editor unterstreicht den Ansatz „Everything is a file“. Das Zusammenspiel mit Pipes, Umleitungen und regulären Ausdrücken ermöglicht eine sehr feingranulare Bearbeitung.

Performance und Ressourcenverbrauch
Es ist kein Geheimnis, dass moderne Entwicklungsumgebungen mit Syntax-Highlighting, intelligenter Codevervollständigung und anderen Komfortfeatures mehr Systemressourcen benötigen als die klassischen Unix-Editoren. Im Vergleich dazu sind Ex und Vi geradezu asketisch. Auf älteren oder extrem schmal ausgelegten Systemen können sie sehr schnell agieren. Wer etwa im Rahmen eines Rescue-Systems oder auf einem Embedded-Gerät arbeitet, freut sich oft über einen Editor, der sofort und ohne Verzögerung startet.
Ein Grund, warum Vi in seiner minimalistischen Form trotz seiner geringen Ressourcenauslastung dennoch vielen reicht, ist die Vielzahl an Tastaturkürzeln und Modalkonzepten. Ein geübter Nutzer kann Texte in Windeseile navigieren und verändern, ohne dabei nennenswert mehr CPU- oder Speicher-Ressourcen zu beanspruchen.

Dateiverwaltung und Navigation
Sowohl in Ex als auch in Vi ist es wichtig, sich mit dem grundlegenden Navigationskonzept vertraut zu machen. Bei Ex bedeutet dies, Zeilennummern anzusprechen oder mithilfe von Mustern gezielt Bereiche zu steuern. In Vi erfolgt die Navigation zumeist über Tasten wie h, j, k, l
für die Cursorbewegung nach links, unten, oben und rechts sowie weiterführende Befehle wie w
für den Sprung zum nächsten Wort oder G
, um ans Dateiende zu gelangen.
Die Befehle zum Öffnen, Speichern und Schließen verschiedener Dateien sind in beiden Editoren ähnlich. Beispielsweise wechselt man in Ex von einer Datei zur anderen über entsprechende Befehle (z.B. :e datei2.txt
), während Vi dieselbe Syntax bietet. Dieses nahtlose Wechseln macht es einfach, mehrere Dateien in einer Sitzung zu bearbeiten, ohne alles schließen zu müssen oder den Editor zu verlassen.

Typische Stolpersteine
Für Einsteiger kann das Wechseln zwischen Normal- und Einfügemodus in Vi anfangs verwirrend sein. Wer versehentlich statt i
(Insert) ein o
(Open new line) drückt, wundert sich über das Schrumpfen oder Wachsen der Datei an unerwarteter Stelle. Solche Kleinigkeiten lernt man jedoch schnell einzuschätzen, wenn man ein paar Minuten täglich mit Vi verbringt.
Bei Ex hingegen kann das strikte Zeilendenken etwas gewöhnungsbedürftig sein. Anstelle des intuitiven Scrollens in einer Vollbild-Ansicht muss man die entsprechenden Zeilen oder Bereiche explizit ansprechen. Allerdings eröffnen sich dadurch enorme Möglichkeiten für automatisierte Textmanipulation. Reguläre Ausdrücke sind hier Trumpf. Wer gerne mit sed
und awk
arbeitet, wird in Ex schnell heimisch werden.
Integration in Entwicklungs- und Produktionsumgebungen
Heutige Continuous-Integration-Pipelines und Deployment-Prozesse setzen häufig auf Script-basiertes Vorgehen. Hier kann Ex eine wertvolle Ergänzung sein, um im Rahmen eines Build- oder Release-Prozesses automatisch Versionsnummern in Dokumentationen oder bestimmte Codestellen anzupassen. Wer hingegen auf Produktivsystemen sporadisch Korrekturen an Serverkonfigurationen vornimmt, ist mit Vi meist besser bedient. Es reicht, sich schnell einzuloggen, die Konfigurationsdatei aufzurufen, Änderungen vorzunehmen und den Editor sauber zu verlassen.
Die Tatsache, dass beide Editoren quasi allgegenwärtig sind, bedeutet im Umkehrschluss eine sehr breite Unterstützung der entsprechenden Kommandos. In den Paketquellen (Repositories) vieler Linux-Distributionen findet man außerdem spezialisierte Derivate und Erweiterungen, die das Beste aus beiden Welten kombinieren. Somit bleibt das Grundprinzip von Ex und Vi erhalten, während man gleichzeitig zusätzliche Features wie Multilevel-Undo, erweitertes Syntax-Highlighting oder Plugins nutzen kann.

Arbeiten mit Makros und Wiederholungen
Eine oft unterschätzte Möglichkeit von Vi ist die Aufnahme und das Abspielen von Makros. Damit lassen sich komplexe Bearbeitungsschritte aufzeichnen und beliebig oft wiederholen. Wer also regelmäßig ein bestimmtes Muster in einer Konfigurationsdatei ändern muss, kann sich viele manuelle Arbeitsschritte ersparen. Das Prinzip ist simpel: Man startet eine Aufnahme mit q
gefolgt von einem Buchstaben (z.B. qa
), führt die gewünschten Befehle aus, beendet die Aufnahme mit q
und spielt das Makro anschließend mit @a
beliebig oft ab.
Ex hingegen ermöglicht das Ausführen von Skriptdateien im Batch-Modus. Auf diese Weise kann man bestimmte komplexe Befehlsabfolgen speichern, versionieren oder in automatisierte Prozesse integrieren. Für Operatoren, die große Datenmengen oder Logdateien regelmäßig aufbereiten müssen, ist das ein effektiver und leichtgewichtiger Ansatz, um wiederkehrende Arbeiten zu standardisieren.
Welche Lernressourcen sind sinnvoll?
Die Dokumentation zu Ex und Vi ist in vielen Unix-Handbüchern verankert. Darüber hinaus findet man auf nahezu allen Linux-Systemen die Manpages man ex
und man vi
. Diese liefern bereits eine Fülle an Informationen zu grundlegenden Befehlen und erweiterten Optionen. Wer rasch erste Schritte unternehmen möchte, probiert vimtutor
aus, das meist vorinstalliert ist und eine interaktive Einführung bietet, die sich teilweise auf das klassische Vi übertragen lässt. Auch für Ex existieren Online-Ressourcen mit Beispielen für Skripting. Besonders lehrreich ist es, sich eigene Übungsaufgaben zu erstellen, um den Umgang mit den Modi und Befehlen zu verinnerlichen.
Ausblick
Auch wenn grafische Tools immer komfortabler werden, bleiben Ex und Vi ein fester Bestandteil der Unix-Welt. Sie ermöglichen eine extrem präzise, ressourcenschonende und automatisierte Bearbeitung von Textdateien. In Zeiten von Cloud-Computing und DevOps-Methoden ist es ratsam, sich zumindest grundlegend mit beiden Editoren auszukennen. Während Ex in komplexen Skripting-Szenarien seine Stärken ausspielt, wird Vi auch künftig in der direkten Interaktion mit Systemen punkten. Wer sich damit auseinandersetzt, erkennt schnell, dass hier Zeit und Aufwand gut investiert sind. Somit ist es keine Frage, ob Ex und Vi veraltet sind oder nicht – sie bleiben vielmehr ein unverzichtbarer Teil der Unix-Philosophie und werden das Arbeitsleben von Administratoren und Entwicklern weiterhin nachhaltig prägen.