ubuntuusers.de

Emacs

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./emacs_icon.png 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)

Paketliste zum Kopieren:

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 

intern

extern

Diese Revision wurde am 21. April 2020 00:51 von Beforge erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Emacs, Editor