»Der springende Punkt ist, ob man Autorität HAT oder eine Autorität IST.«
– Erich Fromm
10 Die Editoren
In diesem Kapitel zeigen wir Ihnen, wie Sie sich die Arbeit bei der im nächsten Kapitel folgenden Shellskriptprogrammierung sowie maßgeblich bei der Systemkonfiguration erleichtern. Denn genau hierbei unterstützt Sie ein Text-Editor, also ein Programm, in das man Text eingibt und mit dem man diesen dann als Datei abspeichern kann.
Unter Unix schreibt man nicht nur Shellskripts im Editor, sondern wickelt nahezu die gesamte Systemkonfiguration über Editoren ab, da die Systemkonfiguration durch Textdateien realisiert wird.
Anders als unter grafischen Systemen wie Windows erfolgt die Konfiguration hier nicht mit der Maus, sondern zu fast 100% über Konfigurationsdateien. Um ein System richtig zu konfigurieren, benötigen Sie folglich einen Editor sowie das Know-how, um diesen zu bedienen. Außerdem müssen Sie den Aufbau jeder einzelnen Konfigurationsdatei und deren Syntax kennen. [Das hört sich schlimmer an, als es ist: Die Softwareentwickler achten natürlich darauf, eine möglichst einheitliche Syntax für die Konfigurationsdateien zu implementieren.]
Neben dem historisch sicherlich wertvollen ed-Editor, mit dem wir Sie aber erst gegen Ende des Kapitels quälen, gibt es noch einige gute und daher äußerst beliebte Editoren.
vi, Emacs
Zum einen ist da der vi_$me_-Editor. Er steht eigentlich auf jedem Unix-System zur Verfügung. Beherrscht man diesen Editor, kann man unter jedem Unix-System Konfigurationen abwickeln. Zum anderen stellen wir den Editor emacs [Editor MACroS] vor. Er ist nicht überall verfügbar, besitzt aber einige besondere Features, etwa die Möglichkeit, in der Programmiersprache Lisp verfasste Skripte zu verwenden.
Beide Editoren haben ihre Anhänger, die jeweils davon überzeugt sind, dass ihr Editor der beste sei. Doch das ist, wie so vieles im Leben, Ansichtssache. |
10.1 Anforderungen an Editoren 

Syntax-Highlighting
Heutzutage stellen die Anwender eines Editors schon etwas höhere Anforderungen an dessen Funktionsumfang, als es noch vor einigen Jahrzehnten der Fall war. Ein guter Editor sollte das Highlighting von Klammer-Paaren beherrschen (also die Fähigkeit, eine geschlossene Klammerung aufblinken zu lassen, wenn man diese mit dem Cursor anvisiert) und vor allen Dingen das Syntax-Highlighting. Beim Syntax- Highlighting handelt es sich um eine Funktionalität, die es ermöglicht, bestimmte Schlüsselwörter und Operatoren diverser Programmiersprachen (farbig) hervorzuheben, um die Programmierung zu vereinfachen. Dabei können Integer-Werte von Strings und Gleitkommazahlen oder Funktionen von Schlüsselwörtern auch visuell unterschieden werden. Heutige Editoren unterstützen oftmals eine Vielzahl von Sprachen in dieser Funktionalität. Besonders häufig unterstützt werden die folgenden Sprachen: [Für unsere ganz smarten Leser sei angemerkt, dass natürlich nicht jede der folgenden »Sprachen« (etwa XML) auch der Definition einer Programmiersprache entspricht.]
- Assembler (speziell GNU-Assembler)
- C und C++
- Fortran
- Tcl
- Java
- LUA
- Common-Lisp, Scheme und diverse weitere Lisp-Dialekte
- Perl
- Ruby
- Python
- Java-Script
- SQL
- PHP
- (X)HTML, XML
- LaTeX
- die Bourne-Shell und häufig auch die C-Shell
Mit Sprachen (und das gilt insbesondere für funktionale Sprachen) wie den folgenden ist man da schon wesentlich schlechter dran, was oftmals am geringen Verbreitungsgrad der Sprachen unter Linux liegt:
- Prolog
- Haskell
- Smalltalk
- Erlang
- Eiffel
- Pascal
- Basic
- viele unbekanntere Sprachen
Multiple Document Editing
Umfangreiche Softwareprojekte oder auf mehrere Dateien verteilte Dokumente werden wiederum durch die Unterstützung von Multiple Document Editing, also durch die Übersicht über alle Dateien in einem Editorfenster (wobei sich jeweils eine Datei zur aktuellen Bearbeitung auswählen lässt) sehr viel übersichtlicher.
Multilevel Undo/Redo
Oftmals müssen auch bereits vollzogene Änderungen im Text wieder verworfen werden. Einige Editoren sind allerdings nur in der Lage, die allerletzte Änderung rückgängig zu machen. Abhilfe schafft das Multilevel Undo/Redo. Diese Technik erlaubt es Ihnen, mehrere Schritte der Textveränderung rückgängig zu machen oder wiederherzustellen.
Weitere nützliche Funktionen sind das Finden und Ersetzen von Textstellen, eine Rechtschreibprüfung, aber auch die Möglichkeit, Dokumente zu drucken. Ferner stellen auch Remote-Editiervorgänge (beispielsweise über FTP-Server) oder die Unterstützung für das Concurrent Version System (CVS) interessante und manchmal nützliche Features dar.
10.1.1 Zeilenorientiert versus bildschirmorientiert 

Generell unterscheidet man zwischen zwei Arten von Editoren: den zeilen- und den bildschirmorientierten. Zeilenorientierte Editoren wie etwa der ed zeigen Ihnen immer die Zeile an, die aktuell bearbeitet wird. Mittels eher umständlicher Kommandos kann dann eine höhere oder tiefere Zeile dargestellt werden. Bildschirmorientierte Editoren wie der vi nutzen den ganzen Bildschirm bzw. das ganze Terminalfenster zur Anzeige des Inhalts der Textdatei. Sie sehen also mehrere Zeilen (so viele, wie gerade auf den Bildschirm passen) gleichzeitig, was die Bedienung eines solchen Editors bequemer gestaltet.