Emacs Lisp
aus Wikipedia, der freien Enzyklopädie
Emacs Lisp ist ein Dialekt der Programmiersprache LISP, in der der größte Teil des Editors Emacs programmiert ist und die auch zur Erweiterung des Editors genutzt werden kann. Alle Editorfunktionen liegen als LISP-Funktionen vor. Die grundlegendsten davon sind in C implementiert. Tastenkombinationen sind über eine so genannte keymap den Funktionen zugewiesen. Emacs-LISP ist für die außerordentliche Erweiterbarkeit dieses Editors verantwortlich.
Emacs stellt dem Benutzer standardmäßig einen Puffer (Textfenster) zur Verfügung, in dem LISP-Funktionen ausgewertet werden können. Einstellungen des Editors werden in LISP-Variablen festgehalten. Sie können interaktiv gesetzt werden oder mit einer Initialisierungsdatei festgelegt werden.
[Bearbeiten] Quelltext und Byte-Code
Emacs-Lisp-Quelltext wird in Textdateien gespeichert. Die Dateien besitzen die Dateikennung ".el". Eine Ausnahme ist die Startdatei, deren Befehle beim Aufrufen des Editors abgearbeitet werden. Sie heißt ".emacs" und befindet sich im Home-Verzeichnis. Dies kann auch unter Windows durch Setzen der Umgebungsvariablen Home festgelegt werden (und da Windows Programme teilweise Probleme mit dem Punkt am Anfang haben kann hier auch "_emacs" verwendet werden). Ein Lispinterpreter führt den in den Textdateien enthaltenen Programmtext aus. Funktionsdefinitionen werden eingelesen und stehen während der Editorlaufzeit zur Verfügung. Funktionen und Variablen können frei neu definiert oder verändert werden.
Ein Großteil der Funktionen wird erst dann geladen, wenn er benötigt wird (über die Funktion autoload).
Die Basisfunktionen des Editors sind in C geschrieben. Sie werden auf English primitives genannt; es handelt sich gewissermaßen um die eingebauten Funktionen. Diese werden von den LISP-Funktionen benutzt; sie können aber nicht verändert werden. (Außer man schreibt sie in C neu und rekompiliert den ganzen Editor, was möglich ist, da er ja als Open-Source-Programm vorliegt.)
Emacs-Lisp bietet wie die spätere Programmiersprache Java auch die Möglichkeit, den Quelltext in Byte-Code zu übersetzen (Menu Compile). Die produzierten Dateien haben dann die Kennung ".elc". Die kompilierten Programme benötigen weniger Speicherplatz und werden rascher ausgeführt.