Emacs
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
⚓︎ Verwenden eines PPAs, optional
⚓︎ Programme kompilieren, optional
GNU Emacs ist ein sehr umfangreicher und plattformunabhängiger Editor, der durch einen eigenen Lisp-Dialekt (Emacs Lisp 🇬🇧) erweiterbar ist. Da seine Steuerung hauptsächlich auf Tastenkombinationen basiert, bedarf es einiger Einarbeitung, um alle seine Möglichkeiten intensiv nutzen zu können. Durch eine hohe Anzahl an Plugins ist der Editor in nahezu allen Bereichen einsetzbar. Es stehen beispielsweise Erweiterungen für Dateiverwaltung, Email und News, IRC, Kompilierungen, Websurfen, uvm. zur Verfügung.
Installation¶
Es gibt einige Möglichkeiten Emacs zu installieren. Dabei stehen verschiedene Versionen über die Paketverwaltung, Snaps und PPA zur Verfügung. Diese Möglichkeiten werden im separaten Artikel Emacs/Installation beschrieben. Für den "Schnellstart" kann Emacs über APT installiert werden:
emacs (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install emacs
Oder mit apturl installieren, Link: apt://emacs
Bedienung - Grundlagen¶
Starten¶
Emacs ist bei Ubuntu-Varianten mit einem Anwendungsmenü entweder unter "Anwendungen → Entwicklung → GNU Emacs", "Anwendungen → Zubehör → GNU Emacs" und/oder "Anwendungen → Programmierung → GNU Emacs" zu finden. Man kann den Editor aber auch in der Konsole[3] durch
emacs # Start mit GUI emacs -nw # Start im Terminal, --no-window-system
starten.
Tutorial¶
Emacs bietet beim Start ein Tutorial, welchem man für die ersten Schritte folgen sollte, da es auch die grundlegenden Konzepte der Buffer und verschiedenen Modi einführt. Anfangs ist es hilfreich sich eine der gebotenen Übersichten parallel zu öffnen; die GNU Software Foundation bietet dafür verschiedene Referenzkarten 🇬🇧, wie die deutschsprachige PDF-Referenz unter https://www.gnu.org/software/emacs/refcards/pdf/de-refcard.pdf 🇩🇪 an.
Helfer¶
Um gerade Anfangs zu ermitteln, was eine Taste oder eine Funktion bewirkt, oder welchen Inhalt eine Variable hat, bietet Emacs verschiedene Funktionen, wie bspw.:
1 2 3 | (describe-key &optional KEY UNTRANSLATED UP-EVENT) (describe-function FUNCTION) (describe-variable VARIABLE &optional BUFFER FRAME) |
Interaktiv anwendbar sind die Funktionen über folgende Tastenkombination:
Alt + X
describe-key
⏎
Dabei steht ein Vervollständigungsmodus mittels Tab ⇆ zur Verfügung.
Buffer und Minibuffer¶
Emacs arbeitet mit sogenannten Puffern (auf englisch: "buffer"). Diese ermöglichen das schnelle Arbeiten im Speicher, inklusive einer "Rückgängig"-Funktion, ohne die bestehende Datei zu verändern. Auf diese Puffer lassen sich beliebige Elisp-Funktionen anwenden. Bei der Arbeit in geteilten Ansichten sind Puffer auf die selbe Datei gleich - alle Änderungen werden auch in den anderen Fenstern übernommen!
Ebenfalls kommt ein Minipuffer zum Einsatz, der prinzipiell nur die untere Zeile des Editors darstellt. In diesem können aus jedem Modus heraus (Elisp-)Befehle abgesetzt werden.
Ein neuer Puffer eignet sich ebenfalls für das Ausprobieren eigener Elisp-Routinen. Beispiel:
Strg + X , B
NeuerName
1 | (message "%s" "ubuntuusers.de") |
Alt + X
eval-buffer
ergibt die Ausgabe ubuntuusers.de
im Minipuffer, so wie im Puffer *Messages*.
Modi¶
Emacs bietet verschiedene Modi, die je nach zu bearbeitender Datei andere Funktionen bereitstellt, so dass man bspw. C-Code direkt kompilieren kann, Markdown formatiert angezeigt wird, oder wie im Falle von org-mode eine Vielzahl an Strukturmöglichkeiten und Listenoptionen bereitgehalten werden. Der aktuelle Modus wird in der Statuszeile dargestellt.
Konfiguration¶
Die Konfiguration des Emacs findet ausschließlich in elisp statt. Dabei steht eine interne Paketverwaltung bereit, um bereits fertige Erweiterungen zu installieren. Zusätzlich kann man seine persönliche Konfiguration in der Datei ~/.emacs, bzw. innerhalb des Ordners ~/.emacs.d sichern. Ausnahmen wie Snap-Installationen oder Komplettpakete können abweichende Pfade/Dateien nutzen. Eigene, komplexere elisp-Skripte sollten in .el-Dateien ausgelagert und ggf. kompiliert werden.
Beispiele finden sich unter Emacs/Konfigurationen.
Spracheinstellungen¶
Wer die Menüleiste benutzt oder über F10 aufruft, wird trotz Lokalisierung immer ein englisches Menü haben. Das bedeutet jedoch nicht, dass Emacs generell keine anderen Sprachen unterstützt.
Normalerweise nutzt Emacs zur Darstellung der Zeichen, etc. die locale
-Einstellungen, es gibt jedoch verschiedene Sprachunterstützungspakete unter Options - Multilingual Environment, um dies zu ändern. Siehe auch GNU Emacs - Language-Environments 🇬🇧.
Erweiterungen installieren¶
Emacs lässt sich durch das eigene Paketverwaltungssystem, ELPA 🇬🇧 (GNU Emacs Lisp Package Archive), beliebig erweitern. Das zusätzliche, semi-offizielle Nicht-GNU-Repository ist MELPA (Milkypostman's Emacs Lisp Package Archive), welches auch in der Emacs-Dokoumentation erwähnt wird. Darüber hinaus finden sich verschiedene Erweiterungen zur manuellen Installation im Netz, die jeweils eine Anleitung zur Integration mitbringen.
Einige Pakete werden in den Ubuntu-Quellen bereitgestellt. Diese lassen sich systemweit über die Paketverwaltung installieren, insofern man eine der passenden Installationsarten wählt. Eine Suche, welche Pakete verfügbar sind, erreicht man am schnellsten mittels
apt list elpa-*
Die Suche mittels apt search emacs
bietet mehr Pakete (>500), ist dadurch aber auch sehr unübersichtlich.
Die Alternative Möglichkeit, Pakete aus dem ELPA direkt zu installieren, wird innerhalb von Emacs über die Funktion package-install
oder das Optionen-Menü bereitgestellt.
Beispiele findet man unter Emacs/Erweiterungen.
Problemlösungen¶
Ubuntu 18.04 - GPG-Schlüssel¶
Der GPG-Schlüssel des ELPA hat sich geändert, siehe http://elpa.gnu.org/packages/gnu-elpa-keyring-update.html 🇬🇧. In Kürze:
1 2 3 4 | #alte Schlüssel deaktivieren: gpg --homedir ~/.emacs.d/elpa/gnupg --quick-set-expire 474F05837FBDEF9B 1y #neuen Schlüssel holen gpg --homedir ~/.emacs.d/elpa/gnupg --receive-keys 066DAFCB81E42C40 |
Für die aktuellen Schlüsselwerte bitte dem Link folgen.
Debug-Modus¶
Um Fehler besser ermitteln und nachvollziehen zu können, kann Emacs im Debug-Modus gestartet werden:
emacs --debug-init
Links¶
intern¶
Emacs/Installation - Installationsarten
Emacs/Erweiterungen - Beispiele für Erweiterungen
Emacs/Konfigurationen - Konfigurations-Schnipsel in elisp
extern¶
Projektseite 🇬🇧
EmacsWiki -🇬🇧/🇩🇪 teilweise in deutsch
Emacs Lisp 🇬🇧 - Handbuch für elisp