Open Source im professionellen Einsatz
Linux-Magazin 10/2013
© 3355m, 123RF.com

© 3355m, 123RF.com

Der programmierbare Editor Emacs

GNUs Tausendsassa

Den Texteditor Emacs gibt es seit Jahrzehnten und die Community entwickelt ihn stets weiter. Zu seinem Erfolgsrezept gehören die Erweiterbarkeit, eine freie Lizenz und eine kreative Anhängerschaft.

847

Ein Texteditor, mit dem man Mail lesen, Aufgaben planen und Tetris spielen kann? Den hatte der spätere GNU-Gründer Richard Stallman vermutlich noch nicht im Sinn, als er 1976 die erste Inkarnation des Emacs programmierte: Es handelte sich um Makros für Teco, den Texteditor des Betriebssystems ITS, das damals im Artificial Intelligence Lab des MIT lief. Laut Legende stammt von diesen "Editing Macros" auch der Name Emacs.

ITS und Teco sind längst verschwunden, ebenso die folgende Emacs-artige Software wie Zmacs, der Multics Emacs und die erste Version für Unix, geschrieben vom Java-Erfinder James Gosling 1981 [1]. Überlebt hat Stallmans Variante, der GNU Emacs [2], den er 1985 veröffentlichte. Er ist heute noch der Leib-und-Magen-Editor vieler Programmierer, sofern sie nicht eine integrierte Umgebung wie Eclipse benutzen – oder den ewigen Emacs-Konkurrenten Vi (siehe Kasten "Vi – der andere Editor").

Vi – der andere Editor

Ein sehr langlebiges Projekt, das unter Linux noch immer zum Einsatz kommt, heißt Vi (für "visual"). Der Texteditor stammt aus dem Jahre 1976. Ihm gingen unterschiedliche Varianten des zeilenorientierten Unix-Editors Ed von Ken Thompson voraus, der wiederum auf dem noch älteren Qed basierte, der Mitte der 60er Jahre entstanden war und dessen Geschichte Dennis Ritchie aufschrieb [7].

Dank seines geringen Ressourcenbedarfs wurde Vi zum Standardeditor vieler Systeme. Das Terminalprogramm kann mit seiner ausgefeilten Tastenbelegung mehrere Befehle kombinieren. So löscht [D][W][.][.][.] den Rest des Worts rechts vom Cursor und wiederholt den Vorgang dreimal. Die kurzen Kommandos erlauben fließendes Arbeiten.

Der Erfolg von Vi beruht zudem auf den drei Arbeitsmodi: Im Command Mode lassen sich simple Arbeiten erledigen (Zeilen löschen, Wörter suchen), im Insert Mode kann man Text eingeben und im Ex Mode lassen sich komplexe Befehle absetzen, etwa Suchen und Ersetzen. Seinen Weg in eine Linux-Distribution fand der Originaleditor aber erst im Jahre 2002. Gunnar Ritter nahm um 2000 herum den Quellcode des Vi-Erfinders Joy aus 2.11-BSD und portierte ihn für Linux und Free BSD. Doch erst zwei Jahre später änderte AT&T die Quellcode-Lizenz und erlaubte es, aus dem Original-Vi ein Open-Source-Projekt [8] zu machen.

Andere waren schneller: Ende Januar 1990 veröffentlichte Steve Kirkendall mit Elvis einen Vi-Klon für Minix und schickte ihn an die Newsgroup Comp.os.minix [9]. Als Elvis zwei Jahre später Version 1.5 erreichte, ließ sich die Software auch unter Linux ausführen [10]. Zur selben Zeit tauchte Vim unter Linux auf [11]. Bram Moolenar veröffentlichte ihn Ende 1991 für Amiga, er basierte auf einem Vi-Klon namens Stevie. Der Sprung auf Linux gelang mit Version 1.24.

Vim gilt als erfolgreichste Vi-Variante unter Linux, viele Distributionen leiten Vi-Aufrufe automatisch an Vim weiter. Grund dafür ist neben dem Mehr an Features gegenüber Vi sicherlich auch Vimscript, das es erlaubt, den Editor um eigene Funktionen oder Makros zu erweitern.

Für den Erfolg des GNU Emacs, der nun fast drei Jahrzehnte anhält, dürften mehrere Faktoren gesorgt haben, auch wenn der derzeitige Chef-Maintainer Stefan Monnier dafür hauptsächlich eine große Portion Glück verantwortlich macht.

Teil eines großen Plans

Der Editor sollte kein einzelnes Softwareprodukt werden, Richard Stallman hatte ein komplettes System alternativer Unix-Software im Sinn. Das machte er erstmals im September 1983 im Usenet bekannt [3]: "Von Thanksgiving an werde ich ein vollständiges, Unix-kompatibles Softwaresystem namens GNU (für Gnu 's Not Unix) schreiben und an jeden kostenlos abgeben, der es brauchen kann. Unterstützung in Form von Zeit, Geld, Programmen und Hardware wird dringend benötigt."

Wenn der Plan auch nicht in allen Details aufgegangen ist, muss doch jeder zugeben, dass GNU-Software wie GNU Compiler Collection (GCC) und Bash heute wichtige Fundamente Unix-artiger Systeme bilden. Der Editor Emacs war unter diesen Komponenten das erste fertige Programm, das das junge GNU-Projekt 1985 vorzeigen konnte, während GCC noch in der Entwicklung steckte.

Dazu kam eine Lizenz, die das Weitergeben von Code ermöglichte, wie es in der akademischen Welt des MIT üblich gewesen war. Anfangs war dies die GNU Emacs General Public Licence (GPL), später machte Stallman sie für weitere Programme tauglich und veröffentlichte sie 1989 als GNU General Public License (GPL) 1.0. Sie erklärt das Teilen von Code nicht nur zu einem Recht, sondern zur Pflicht, und setzt damit die Idee eines "andersrum funktionierenden" Copyright um – des Copyleft.

Features einfach nachladen

Daneben hatte sich Richard Stallman schon früher Gedanken über die Technik eines erweiterbaren und anpassbaren Editors gemacht. In einem Aufsatz für die "ACM Conference on Text Processing" [4] hielt er 1981 die grundlegende Architektur fest: Ein Basissystem, das sich zur Laufzeit durch das Laden von Bibliotheken um Features erweitern lässt. Damit legte er sich auf Programmiersprachen und Implementierungen fest, die das können. Neben Snobol und APL machte dies Lisp zum Kandidaten. Schon Gosling hatte für seine Emacs-Ausgabe ein reduziertes Lisp-artiges System namens Mocklisp gewählt.

In einer Rede [5] hat Stallman 2002 näher ausgeführt, wie er mit Lisp vertraut wurde und schließlich Emacs Lisp schuf, für das der Editor heute einen eingebauten Interpreter besitzt. Die Erweiterbarkeit mittels einer leistungsfähigen Programmiersprache gilt allgemein als Erfolgsrezept von Emacs.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.