10.4 Emacs
Emacs ist wie der vi ein etwas größerer Editor mit vielen Features und Erweiterungen. An sich ist er eigentlich kein Editor, sondern eine Familie von Editoren. Die wichtigsten Vertreter sind dabei der GNU Emacs und XEmacs.
Da ein Editor auf der Konsole unter der grafischen Oberfläche X11 vielleicht doch nicht mehr so ganz zeitgemäß ist, gibt es den GNU Emacs auch mit einer grafischen Oberfläche. Das Interessante an diesem Programm ist, dass es sich genauso gut unter einer Textkonsole wie unter X11 nutzen lässt.
Beim XEmacs handelt es sich um ein eigenständiges Projekt mit vielen abweichenden Features und Funktionen.
Abbildung 10.3 Emacs unter X11
10.4.1 Konzepte
Emacs ist nicht einfach nur ein Editor. Er verfügt über eine eigene Programmiersprache – Emacs Lisp, kurz Elisp – und eine Menge bereits eingebauter Optionen. Jedem Tastendruck wird dann eine bestimmte Funktion in dieser Sprache zugeordnet.
Auf diese Weise können neue Funktionen einfach hinzugefügt, bereits vorhandene Funktionen von neuen Nutzern relativ schnell gefunden oder von versierten Nutzern auf einzelne Tasten gelegt werden. Damit wird der Emacs zu einem wirklich mächtigen Werkzeug.
Tastaturnotationen
Da der Emacs noch stärker als der vi auf Tastatureingaben angewiesen ist, wollen wir zuerst die Tastaturnotation vorstellen:
Taste | Bezeichnung | Bedeutung |
C |
Control |
die Steuerungstaste (Strg) |
M |
Meta |
die Meta-Taste (Alt) |
SPC |
Space |
die Leertaste |
RET |
Return |
die Enter-Taste |
DEL |
Delete |
die Backspace-Taste |
Mit diesen Tasten kann nun in Kombination mit den »normalen« Tasten gearbeitet werden. Meistens liest man dann Kommandos wie C-x C-c, was bedeutet: »Halte Strg gedrückt und drücke X. Dann lasse beide Tasten los und drücke als Nächstes Strg und C gleichzeitig.«
Ein solches Tastaturkommando würde nun die an dieses Kommando gebundene Elisp-Funktion aufrufen. Möchte man eine solche Funktion durch ihren Namen aufrufen, einfach weil man die zugehörige Tastenkombination vergessen oder dieser Funktion keine Taste zugeordnet hat, so benötigt man eine spezielle Tastaturkombination: M-x Funktionsname RET.
Puffer
Damit man im Emacs komfortabel arbeiten kann, abstrahiert der Editor die Sicht auf reguläre Dateien. Man arbeitet nämlich stattdessen auf Puffern (engl. buffer). Diese können, müssen aber nicht mit regulären Dateien assoziiert sein.
Der beim Start geladene *scratch-Puffer zum Beispiel ist keiner Datei zugeordnet. Er ist für Dinge gedacht, die erst einmal so notiert werden sollen. Später kann man dann im wahrsten Sinne des Wortes einen Text from scratch schreiben.
Fenster
Die Fenster (engl. windows) des Emacs stellen Sichtweisen auf Puffer dar. Dabei kann der Emacs mehrere Fenster gleichzeitig anzeigen, und jedes Fenster steht für einen Puffer. Auch können mehrere Fenster auf denselben Puffer zeigen – da aber jedes Fenster eine eigene Sichtweise auf einen Puffer darstellt, kann man sozusagen eine Datei gleichzeitig an zwei Stellen ansehen.
Abbildung 10.4 Zwei Fenster im Emacs
In Abbildung emacs_window sehen Sie den Emacs mit zwei geöffneten Fenstern – die Fenster haben also wirklich nichts mit den Ihnen vielleicht bekannten Fenstern einer grafischen Oberfläche zu tun.
In diesen Fenstern sehen Sie zwei Puffer, die beide mit keiner Datei assoziiert sind. Im obersten Fenster ist der Standardpuffer *scratch zu sehen. Im unteren Fenster haben wir uns mit C-h ? eine Übersicht über alle Hilfethemen anzeigen lassen.
Region
Auch das Konzept der Regionen macht Emacs sehr mächtig, da es das Markieren von Text etwas abstrahiert. Man kann mit dem Cursor (dem Point) eine sogenannte Mark setzen, die dann den Anfang der Region darstellt. Die aktuelle Cursor-Position ist dann immer der Anfang. Regionen können nun, wie von anderen Editoren her bekannt, kopiert, ausgeschnitten und wieder eingefügt werden.
Modi
Jeder Puffer befindet sich in einem sogenannten Modus, der bestimmte Verhaltensweisen oder auch das Aussehen des Textes regelt. In einem Modus gibt es beispielsweise Syntax-Highlighting für Programmcode und in einem anderen das Feature für automatische Code-Einrückung.
10.4.2 Grundlegende Kommandos
Grundlegende Kommandos fangen meist mit C-x an. Sie müssen sie sich nicht alle auf einmal merken; mit der Zeit prägen Sie sich schon das Notwendige ein. Mit folgenden Tastaturkommandos werden Sie den Emacs bereits für einfache Editierarbeiten benutzen können:
Tasten | Kommando | Aktion |
C-x C-c |
save-buffers-kill-emacs |
Emacs beenden |
C-x C-f |
find-file |
Datei/Verzeichnis öffnen |
C-x C-s |
save-buffer |
Puffer in einer Datei speichern |
C-x C-w |
write-file |
Speichern unter ... |
C-_ |
undo |
letzte Aktion rückgängig machen |
C-s |
isearch-forward |
suchen (vorwärts) |
C-r |
isearch-backward |
suchen (rückwärts) |
C-g |
keyboard-quit |
aktuelle Aktion abbrechen |
C-h |
help-command |
Hilfe anzeigen |
10.4.3 Arbeiten mit Puffern und Fenstern
Nun bedeutet aber das Arbeiten mit Emacs auch das Arbeiten mit Puffern. Die folgenden Kommandos bilden eine wichtige Basis, um mit Puffern vertraut zu werden. Spätestens jetzt sollten Sie auch damit anfangen, mit einem Emacs etwas zu »üben«.
Tasten | Kommando | Aktion |
C-x b |
switch-to-buffer |
anderen Puffer auswählen |
C-x C-b |
list-buffers |
alle Puffer anzeigen |
C-x k |
kill-buffer |
Puffer löschen |
C-x 2 |
split-window-vertically |
Fenster halbieren |
C-x 1 |
delete-other-windows |
Fenster maximieren |
C-x o |
other-window |
Fenster wechseln |
C-x ^ |
enlarge-window |
Fenster vergrößern |
10.4.4 Arbeiten mit Mark und Region
Nun wollen wir ein wenig ins Detail gehen, was das Arbeiten mit Emacs betrifft. Dazu gehört das Umgehen mit Mark und Region und den damit verbundenen Operationen wie Ausschneiden und Kopieren.
Tasten | Kommando | Aktion |
C-SPC |
set-mark-command |
Mark setzen |
C-k |
kill-line |
bis zum Ende der Zeile löschen |
C-x C-x |
exchange-point-and-mark |
Point und Mark vertauschen (setzt Cursor auf die alte Mark) |
C-w |
kill-region |
Region ausschneiden |
M-w |
kill-ring-save |
Region kopieren |
C-y |
yank |
Kopiertes einfügen |
M-y |
yank-pop |
vorher Kopiertes einfügen |
10.4.5 Das Menü nutzen
Wie Ihnen sicherlich schon aufgefallen ist, besitzt der Emacs eine Menüleiste. Unter einer grafischen Oberfläche können Sie diese wie gewohnt einfach mit der Maus nutzen. In einer Textkonsole ohne Mausunterstützung müssen Sie sich jedoch anders behelfen.
Im Normalfall öffnen Sie die Menüleiste durch einfaches Drücken von F10 bzw. mit der Tastenkombination M + ` (Apostroph). Daraufhin gelangen Sie in einen Modus, in dem es möglich ist, die Menüleiste zu verwenden. Natürlich hat jeder Eintrag im Menü auch ein normales Tastenkürzel bzw. steht für eine Elisp-Funktion, so dass Sie die Funktionalität auch auf dem »normalen« Weg erreichen.
10.4.6 Emacs konfigurieren
Zum Konfigurieren editieren Sie einfach die Datei .emacs in Ihrem Home-Verzeichnis oder nutzen – was noch besser ist – die eingebaute Konfigurationsmöglichkeit über das Kommando M-x customize.
Sie werden dann zwar mit einer Vielzahl von Konfigurationsmöglichkeiten konfrontiert, aber schließlich ist der Emacs auch mehr als ein Editor. Außerdem sind die meisten Möglichkeiten selbsterklärend, und bei weiterführenden Fragen bringt Sie auch die eingebaute Hilfe weiter.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.