Emacs: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:
Emacs ist
Emacs ist
* ein sehr umfangreicher und mächtiger, enorm weit verbreiteter '''Editor''',
* ein sehr umfangreicher und mächtiger, enorm weit verbreiteter '''Editor''',
* eine '''Programmierplattform und Laufzeitumgebung''' für richtige Anwendungen, beispielsweise News- und Mail-Clients,
* eine '''Programmierplattform und Laufzeitumgebung''' für Lisp-Anwendungen, beispielsweise News- und Mail-Clients,
* eine offene '''Entwicklungsumgebung'''.
* eine offene '''Entwicklungsumgebung'''.
(Manche witzeln, er sei ein eigenes Betriebssystem.)
(Manche witzeln, er sei ein eigenes Betriebssystem.)

Version vom 20. August 2009, 07:14 Uhr

Emacs ist

  • ein sehr umfangreicher und mächtiger, enorm weit verbreiteter Editor,
  • eine Programmierplattform und Laufzeitumgebung für Lisp-Anwendungen, beispielsweise News- und Mail-Clients,
  • eine offene Entwicklungsumgebung.

(Manche witzeln, er sei ein eigenes Betriebssystem.)

Emacs wurde von Richard Stallman in LISP begonnen und steht unter der GPL.

Hinweis: Es kann nicht Sinn dieser Abhandlung sein, emacs in seiner Funktion zu erklären oder gar zu dokumentieren. Zu emacs gibt es tonnenweise Material im Internet, auch auf Deutsch (siehe Links), so dass man sich jederzeit konkret und detailliert informieren kann. Ziel ist hier, die Installation zu erläutern und einen Überblick über die wichtigsten Funktionen zu geben, was als Anregung zum Ausprobieren verstanden werden soll.

Installation

Emacs kann mithilfe von pacman installiert werden:

pacman -Sy emacs

Diese binaries sind für GTK compiliert und enthalten die typischen Dekoration und Stile für Menü, Toolbar und Scrollbars, zudem auch die üblichen Datei-Dialoge.

Wer emacs ohne GTK betreiben will, kann sich problemlos die Quellen beschaffen und selbst compilieren. Es besteht per configure-Option die Möglichkeit, die Verwendung der Motif-Bibliotheken zu erzwingen (diese stehen als pacman-Paket openmotif zur Verfügung) oder ganz auf die Verwendung eines Toolkits zu verzichten und rein für X11 zu compilieren, was emacs ein rustikaleres Aussehen gibt, aber möglicherweise eine halbe Sekunde Ladezeit spart.

Starten

Um Emacs zu starten, muss man nur

emacs

in die Konsole eingeben. Befindet man sich unter X11, wird die X11-Fassung von Emacs in einem neuen Fenster gestartet. Es wäre ratsam, in diesem Fall emacs mit & zu starten:

emacs &

da er sonst das Terminal blockiert. Wenn man Emacs unter X11 im aktuellen Terminal starten möchte, ohne dass ein neues Fenster geöffnet wird, so kann man

emacs -nw 

eingeben, dann in jedem Falle ohne &.

Client/Server

Emacs bietet ein Modell an, bei dem quasi ein Dämon als Server läuft, während interaktiv vom Benutzer gestartete emacs-Prozesse Clients dieses Servers werden. Der Vorteil liegt vor allem in geringerer Ladezeit. Näheres hier [[1]]

Bedienung

Emacs wird üblicherweise vollständig über die Tastatur gesteuert. Er besitzt die Besonderheit, dass auch mehrere separate Tasten(kombinationen) hintereinander einen einzelnen Befehl auslösen können, beispielsweise nacheinander C-s und C-f (Datei öffnen). Tastenkombinationen können zudem (zumindest auf europäischen Tastaturen) auch aus drei Tasten bestehen, beispielsweise M-% (Suchen und Ersetzen), was auf einer deutschen oder schweizer Tastatur zu S-M-5 wird. (Zur Notation von Tastenkombinationen siehe hier [[2]] und [[3]])

Die enorme Anzahl der Tastenkombinationen und ihre oft merkwürdige Anordnung auf der Tastatur haben in den letzten 20 Jahren zu viel Spott geführt. Man benötigt aber in der Tat nur einen kleinen Teil davon, wenige Prozent, und diese kann man lernen, es ist weit weniger schwer als es zunächst aussieht.

Eine vollständige, aus der jeweils aktuellen Konfiguration des Editors heraus gebildete Liste aller Tastenkombinationen erreicht man mit

C-h b

Die Tastenkombinationen sind dort mit den durch sie ausgelösten Lisp-Funktionen aufgeführt, auf welche auch hypertextartig geklickt werden kann, um an nähere Informationen zu gelangen.


Es existiert darüberhinaus eine zentrale Möglichkeit, im sog. Mini-Buffer, den man über M-x erreicht, eine Lisp-Funktion mit ihrem Namen und ggf. Argumenten anzugeben und auszuführen. Dies scheint oft die komfortablere Möglichkeit, da man sich ggf. eher noch an verbale Bgriffe erinnert als an Tastenkombinationen.


Aufgrund der begrenzten Möglichkeiten, die ihre zwei oder drei Knöpfe bieten, gibt es nur wenige Funktionen, die auf der Maus liegen.


Ein sehr gut brauchbares Tutorial findet man im Editor selbst:

C-h t

oder im Help-Menü gleich der erste Eintrag. Es lohnt sich, dieses mal abzuarbeiten. Siehe ferner auch hier [[4]]

Emacs konfigurieren

(ich arbeite in den nächsten Tagen hieran! T.M. 19.08.2009)

Dateiverwaltung in emacs

Es gibt mehrere Implementierungen von Dateiverwaltungen unter emacs (selbst solche mit zwei gegenüberliegenden Seiten). Die bekannteste davon, die auch standardmäßig mit jedem emacs mitgeliefert wird, ist dired (directory editor). Man startet dired über

M-x dired RET   oder   C-x d

wobei man in letzterem Falle noch das Startverzeichnis bekanntgeben oder RET drücken muß. Dired listet dann augenblicklich in einem eigenen buffer die Dateien und Verzeichnisse unterhalb des Startverzeichnisses auf, meist so wie "ls -alF" und hoffentlich auch in Farbe. Auf diesen Einträgen kann man eine Vielzahl an üblichen Datei- bzw. Verzeichnisoperationen ausführen. Erwähnt sei die Möglichkeit, auch mehrere Verzeichnisse untereinander in einem dired-buffer darzustellen, was oft sehr praktisch ist.

Shell in emacs

Es gibt zwei Implementierungen für shell-Betriebsarten unter emacs: shell und eshell.

M-x shell RET   oder   M-x eshell RET

Man kann nicht sagen, welche besser oder komfortabler sei - sie sind verschieden. Beide Varianten nehmen (wie in einem Terminal) an einem Prompt gewöhnliche Benutzereingaben entgegen, führen diese aus und stellen die Ausgaben wieder im gleichen buffer dar.

Der wesentliche Unterschied zwischen beiden Varianten ist, dass shell tatsächlich im Hintergrund eine default-sh des Benutzers startet, meist also bash, mit vorschriftsmässiger Initialisierung, so dass also beispielsweise auch in .bashrc definierte Aliase gleich funktionieren, während eshell in Lisp programmiert ist und nur die eingegebenen Kommandos als externe Prozesse startet. Eshell kann deshalb auch einfach über Schliessen des buffers (C-x k RET) beendet werden, während man in shell explizit exit schreiben oder Ctrl-D drücken muss, um den im Hintergrund laufenden sh-Prozess zu beenden, und erst dann den buffer schliessen darf.

Hey, man kann in eshell (nicht in shell) sogar vim starten! (Na, wenn das nicht etwas ist, auf das emacs-Benutzer lange gewartet haben ...)

Emacs als Entwicklungsumgebung

Editieren

...

Browser für Quellcode

...

Compilieren

...

Debuggen

...

News und Mail in emacs

...

Internet in emacs

Eine sehr interessante Erweiterung für emacs ist das Lisp-Paket emacs-w3m [[5]], eine Schicht, die es erlaubt, den Textbrowser w3m in emacs laufen zu lassen, d.h. von emacs aus vollständig zu bedienen. Man muss dann emacs nicht mehr verlassen, um mal schnell eine Internetsuche durchzuführen.

emacs-w3m wird nicht mitgeliefert. w3m (der eigentliche Browser) und emacs-w3m können über pacman installiert werden:

pacman -Sy w3m emacs-w3m

Man muss anschliessend sehr wahrscheinlich einen load-path in seine .emacs einfügen, damit emacs das Paket findet.

Man startet emacs-w3m über

M-x w3m RET

Dokumentation

Emacs ist self documenting, d.h. in jedem Belang ausführlich dokumentiert. Diese Dokumentation ist jederzeit im Editor selbst abrufbar. Man startet sie über

C-h r

und gelangt in den emacs-eigenen Info-Browser. Den Umgang mit dem Info-System, einem Vorläufer von HTML, muss man etwas üben. Die dazu nötigen Tasten stehen am oberen Rand des buffers. Merken muss man sich vor allem u (up).


Es gibt auch eine FAQ-Liste, die man über

C-h C-f

erreicht.


Weitere Hinweise zur Bedienung gibt emacs selbst auf seinem Startbildschirm.

Links

Gnu Emacs Manual (entspricht den mitgelieferten Info-Seiten, nur hier in HTML) [[6]]

Gnu Emacs verwandte Seiten [[7]]

Emacs-Einsteiger-Dokumentation auf SelfLinux [[8]]

EmacsWiki [[9]]

Emacs Lisp List [[10]]

Eine Liste mit interessanten Erweiterungen (Lisp) [[11]]