Der springende Punkt ist, ob man Autorität HAT oder eine Autorität IST. -- Erich Fromm
6 Die Editoren
In diesem Kapitel soll es darum gehen, sich die Arbeit bei der im nächsten Kapitel folgenden Shellskriptprogrammierung sowie maßgeblich bei der Systemkonfiguration zu erleichtern. Und genau das erreicht man mit einem sogenannten Text-Editor, also einem 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, man wickelt quasi 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. Möchten Sie ein System richtig konfigurieren, benötigen Sie also folglich einen Editor sowie das Know-how, um ihn zu bedienen, und außerdem die Kenntnis über den Aufbau jeder einzelnen Konfigurationsdatei und deren Syntax. <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 nicht quälen werden, gibt es noch einige vernünftige und daher äußerst beliebte Editoren.
vi, Emacs
Zum einen ist da der vi-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 <Escape Meta Alt Control Shift> vor. Er ist nicht überall verfügbar, besitzt aber einige besondere Features, etwa die Möglichkeit, Lisp-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.
6.1 Anforderungen an Editoren
SyntaxHighlighting
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 heutzutage das Highlighting von Klammer-Paaren (also die Fähigkeit, eine geschlossene Klammerung aufblinken zu lassen, wenn man diese mit dem Cursor anvisiert) und vor allen Dingen Syntax-Highlighting beherrschen. 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 getrennt werden. Heutige Editoren unterstützen oftmals eine Vielzahl von Sprachen in dieser Funktionalität. Besonders häufig unterstützt werden: <Für unsere ganz smarten Leser sei angemerkt, dass natürlich nicht jede der folgenden »Sprachen« (etwa XML) auch der Definition einer solchen entspricht.>
- Assembler (speziell GNU-Assembler)
- C und C++
- Fortran
- Tcl
- Java
- Perl
- Ruby
- Phyton
- 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:
- Prolog
- Common-Lisp, Scheme, diverse weitere Lisp-Dialekte
- Haskell
- Smalltalk
- Erlang
- LUA
- Eiffel
- Pascal
- Basic
- viele unbekannte Sprachen
- Sprachen aus der Windows-Welt, die nicht unter Linux verfügbar sind. Dazu zählen insbesondere .NET-Sprachen wie C#.
Dies liegt zum Teil daran, dass funktionale Sprachen nicht allzu häufig verwendet werden, besonders nicht von den Leuten, die die Editoren entwickeln. Außerdem finden Sprachen wie Basic und Pascal unter Linux kaum Verwendung.
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 bzw. wiederherzustellen.
Weitere nützliche Eigenschaften 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.
6.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 umständlicher Kommandos kann dann eine höhere beziehungsweise 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 um einiges vereinfacht.