6.4 Emacs
Der Emacs ist wie der vi auch ein etwas größerer Editor mit vielen Features und Erweiterungen. Der Emacs an sich ist eigentlich kein Editor, sondern eine Familie von Editoren. Die wichtigsten Vertreter sind dabei der GNU Emacs und der 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.
Abbildung 6.3 Emacs unter X11
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 dagegen fast schon um ein eigenständiges Projekt mit vielen speziellen Features und Funktionen.
6.4.1 Konzepte
Der Emacs ist nicht einfach nur ein Editor. Er verfügt über eine eigene Programmiersprache – emacs lisp, kurz elisp – und über eine Menge von bereits eingebauten Optionen. Jedem Tastendruck wird dann eine bestimmte Funktion in dieser Sprache zugeordnet.
Damit können neue Funktionen einfach hinzugefügt, bereits vorhandene Funktionen von neuen Nutzern relativ schnell gefunden bzw. von versierten Nutzern sogar auf einzelne Tasten gelegt werden. Damit wird der Emacs zu einem wirklich mächtigen Werkzeug.
Tastaturnotationen
Da der Emacs mehr noch als der vi auf Tastatureingaben angewiesen ist, wollen wir zuerst die Tastaturnotation vorstellen:
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 die Steuerungstaste gedrückt, und drücke x. Dann lasse beide Tasten los, und drücke als Nächstes Steuerung und c gleichzeitig.«
So ein 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.
Puffer
Damit man im Emacs komfortabel arbeiten kann, abstrahiert der Editor die Sicht auf ordinäre Dateien. Man arbeitet nämlich stattdessen auf Puffern (buffer). Diese können, aber müssen nicht mit regulären Dateien assoziiert sein.
Der beim Start geladene *scratch*-Puffer zum Beispiel ist keiner Datei zugeordnet. Er ist für Notizen oder Gedanken gedacht, die erst einmal so notiert werden sollen. Danach kann man dann im wahrsten Sinne des Wortes einen Text from scratch schreiben ...
Fenster
Die Fenster (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 ist, kann man sozusagen eine Datei gleichzeitig an zwei Stellen ansehen.
In Abbildung 6.4 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*. Im unteren haben wir uns mit C-h ? eine Übersicht über alle Hilfethemen anzeigen lassen.
Abbildung 6.4 Zwei Fenster im Emacs
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 bekannt, kopiert, ausgeschnitten und wieder eingefügt werden.
Modes
Jeder Puffer befindet sich in einem sogenannten Mode. Ein Modus regelt dabei bestimmte Verhaltensweisen oder auch das Aussehen des Textes. Im entsprechenden Modus gibt es beispielsweise Syntax-Highlighting für Programmcode oder das Feature für automatische Code-Einrückung.
6.4.2 Grundlegende Kommandos
Grundlegende Kommandos fangen meist mit C-x an. Sie müssen sich diese nicht alle auf einmal merken, mit der Zeit prägen Sie sich diese schon ein. Mit folgenden Tastaturkommandos werden Sie den Emacs aber schon 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 eine Datei speichern |
C-x C-w | write-file | Speichern unter ... |
C-_ | undo | Letzte Aktion rückgängig |
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 |
6.4.3 Arbeiten mit Puffern und Fenstern
Nun bedeutet aber das Arbeiten mit Emacs auch das Arbeiten mit Puffern. Die folgenden Kommandos sind eine wichtige Basis, um mit Puffern vertraut zu werden. Spätestens jetzt sollten Sie auch mal anfangen, mit einem Emacs 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 |
6.4.4 Arbeiten mit Mark und Region
Nun wollen wir natürlich etwas ins Detail gehen, was das Arbeiten mit Emacs anbelangt. 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 |
6.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 ganz einfach wie gewohnt mit der Maus nutzen. In einer Textkonsole ohne Mausunterstützung müssen Sie sich jedoch anders behelfen.
Im Normalfall kommen Sie an die Menüleiste durch einfaches Drücken von F10 bzw. der Tastenkombination M-`. 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, sodass Sie an die Funktionalität auch auf dem »normalen« Weg kommen.
6.4.6 Den Emacs konfigurieren
Zum Konfigurieren editieren Sie einfach die Datei .emacs in Ihrem Homeverzeichnis 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.