Emacstipps für Einsteiger

Bereits seit vielen Jahren benutze ich den Texteditor Emacs und bin überzeugt: Vielschreiber, Buch- und Webautoren, die den Emacs für sich entdeckt und die Hürden der Einarbeitung in dieses Programm gemeistert haben, werden ihn nicht mehr hergeben wollen.

In der Hoffnung, Sie vor den Irrungen und Wirrungen zu bewahren, in die ich manchmal bei meinen ersten Gehversuchen mit Emacs geraten war, habe ich hier die wichtigsten Schritte für einen Einstieg in sinnvoller Reihenfolge zusammengefasst.

Wenn Sie noch nie mit einem Programm dieser Art gearbeitet haben, möchte ich Sie mit dieser kleinen Einführung außerdem ermutigen, vielleicht allzu gewohnte Pfade einfach mal zu verlassen und etwas Neues zu probieren. Viel Spaß dabei!

Inhaltsverzeichnis

Emacs? Echt jetzt? - Ein Wort zur Motivation

Ich ahne es; in Ihnen gärt die Frage, warum um alles in der Welt, Sie sich ausgerechnet mit einem fast vierzig Jahre alten Stück Software beschäftigen sollten. Also, - ich hätte da zwei Antworten. Die Erste lautet selbsterklärend: Tun Sie es! Für die Zweite muss ich etwas ausholen:

Bei der Arbeit am Pc nutzen Autoren von Webartikeln, Ebooks und Ähnliches, abgesehen von Schreibprogrammen, meist noch zusätzliche Softwaretools wie Aufgabenlisten, Kalender, Tabellen und Pdf-Reader. Die Veröffentlichung auf Webseiten, in Ebooks oder als Druckvorlagen übernehmen in der Regel weitere spezielle Programme.

Wer diese Werkzeuge nutzen will, muss sich zwangsläufig mit der Bedienung dieser Programme auseinander setzen und dabei jeweils den von Softwareentwicklern erdachten Regeln folgen. Ich weiß nicht, wie es Ihnen damit geht, für mich war das Herumhantieren mit mehreren Programmen beim Schreiben immer der größte Flowkiller.

So richtig zeitaufwendig wird es, wenn man Programme verwendet, deren Dateiformate nicht kompatibel zueinander sind. Mitunter ist der Export in verschiedene Formate schwierig, nur mithilfe weiterer Programme möglich oder eben gar nicht.

Vor gut zehn Jahren fing ich aus purer Neugier an, mich mit dem Texteditor Emacs zu beschäftigen und lernte dabei sehr schnell, dass es auch ganz anders geht. Das Programm benötigt keine speziellen Formate, sondern speichert Dateien im reinen Textformat ab. Da es außerdem sehr viel mehr kann, benötige ich kaum weitere Programme. Seit langem verfasse ich daher alle umfangreichen Texte damit. Diese kann ich dann aus dem Programm heraus als Epub oder als Pdf exportieren. Ebenso einfach ist es, Texte mithilfe von Hugo als Webseitenartikel zu veröffentlichen. Ich nutze Emacs außerdem für die Textrecherche, ordne darin meine Materialsammlung und verwalte damit auch meine privaten Termine, Aufgaben, Deadlines, andere Projekte und vieles mehr. Wenn ich produktiv arbeite, verlasse ich Emacs kaum.

Den Downloadlink für dieses wundervolle Programm finden Sie übrigens am Ende des Textes. Bevor Sie sich nun bereits euphorisiert daraufstürzen, rücke ich lieber gleich mit der ganzen Wahrheit heraus: Das Bedienkonzept ist eher unkonventionell und beruht auf der Eingabe von Befehlen oder deren Tastaturkürzeln. Vielleicht mutet das zunächst schwerfällig, altmodisch und völlig out an, ist aber tatsächlich das genaue Gegenteil davon. Bei allen anfänglichen Zweifeln wurde mir bei der Beschäftigung mit dem Programm recht schnell klar, dass die streng tastaturorientierte Bedienung des Emacs klare Vorteile hat und meine eigene Arbeitsweise unterstützt.

Wie Sie den Einstieg meistern

Ich gehe hier davon aus, dass Sie noch nie mit dem Emacs gearbeitet haben. Deshalb möchte ich Sie bereits an dieser Stelle auf das in Emacs enthaltene interaktive Tutorial aufmerksam machen, dass ich Ihnen dringend empfehle. Sie sollten es mindestens bis zu Hälfte durcharbeiten. Dabei lernen Sie schnell nicht nur die wichtigsten Tastenkombinationen und vieles mehr kennen, sondern bekommen ein Gefühl für die Funktionsweise des Programms. Im Emacs starten Sie das Tutorial durch die Eingabe der Tastenkombination STRG + h gefolgt von der Taste t. Das Tutorial ist in verschiedenen Sprachen verfasst. Sofern vorhanden, wird beim Start automatisch die Landessprache gewählt, die Sie bei der Installation Ihres Systems angegeben haben.

Ein Tipp: Wenn Sie mit Emacs arbeiten wollen, werfen Sie die Flinte nicht zu schnell ins Korn! Bleiben Sie am Ball! Wenn Sie sich für kurze Zeit auch mit nur kleinen Fortschritten zufrieden geben, werden Sie das volle Potential des Emacs bald nach und nach entdecken. Obwohl Sie im Netz sehr viele gute Anleitungen und nützliche Howtos finden, lernen Sie die Arbeit mit dem Emacs nicht durch das Lesen von Anleitungen, sondern durch häufiges Anwenden und Ausprobieren. Auch deshalb mein Hinweis auf das interaktive Tutorial.

Danach sind Sie bestens auf das nun Folgende vorbereitet. Dort erfahren Sie, wie Sie den Emacs mit sinnvollen Einstellungen und Erweiterungen zu einem Werkzeug für Autoren aufmöbeln können, das seinesgleichen sucht. Darauf aufbauend erläutere ich im nächsten Artikel unter anderem den Gebrauch einiger wichtiger Erweiterungen.

Die Paketverwaltung des Emacs

Bereits ein frisch installiertes Emacs, ohne jede Erweiterung besitzt schon einen beachtlichen Funktionsumfang. Es gibt jedoch jede Menge Erweiterungen, in Emacs packages genannt, welche die Bedienung erleichtern und das Programm mit wichtigen zusätzlichen Funktionen ausstatten.

Installieren können Sie Erweiterungen entweder über die Paketverwaltung des Emacs oder durch verschiedene andere Techniken, auf die ich später eingehen werde. Die Paketverwaltung bezieht die packages aus festgelegten Archiven im Internet. Bei einer frischen Installation sind das die Quellen des „GNU Emacs Lisp Package Archive“, kurz ELPA genannt. Das sind die offiziellen Paketquellen des Emacs.

Die Liste der installierbaren ELPA-Pakete können Sie durch Eingabe von M-x package-list-packages RET einsehen. In der Spalte Archiv sehen Sie die Einträge „gnu“ und „nongnu“. Daran erkennen Sie, dass diese Pakete aus den ELPA-Archiven stammen. In dieser Liste sollten Sie auch in regelmäßigen Abständen Updates der Pakete durchführen. Mit U markieren Sie automatisch alle aktualisierbaren Pakete. Mit der Taste x leiten Sie dann das Upgrade ein.

Mit M-x package-install RET Programmname RET können Sie gewünschte Pakete installieren. Ebenso einfach ist es, mit M-x package-delete RET Programmname RET, Pakete wieder zu entfernen. Es ist auch immer eine gute Idee, die Paketliste vor der Installation von packages, mit M-x package-refresh-contents RET, zu aktualisieren.

Oft verwendet, sehr gut gepflegt und aktuell, gibt es noch das „Milkypostman’s Emacs Lisp Package Archive“, kurz MELPA. Dieses Repository verfügt über wesentlich mehr und aktuellere packages als ELPA. Diese Aktualität bringt es mit sich, dass hier auch schon mal nicht ganz ausgereifte Versionen bereitgestellt werden. Allerdings nutze ich MELPA bereits sehr lange und hatte bisher keine Probleme damit. Ich würde immer die Nutzung des MELPA-Archives empfehlen. Einige des später vorgestellten Erweiterungen finden Sie in der benötigten Version nur in diesen Archiven.

Von vornherein ist Emacs darauf konfiguriert, nur die ELPA-Quellen zu verwenden. Damit der Paketmanager die MELPA-Quellen nutzen kann sind einige Vorkehrungen zu treffen.

MELPA-Quellen in der init.el aktivieren

Bei jedem Start durchsucht Emacs das Wurzelverzeichnis des Nutzers nach den Dateien /.emacs, /.emacs.el, oder /.emacs.d/init.el. Das sind mögliche Konfigurationsdateien, in der Sie wichtige Einstellungen für den Betrieb des Programms vornehmen können. Nach der Neuinstallation ist diese Datei noch nicht vorhanden. Legen Sie also im Ordner /.emacs.de Ihres Wurzelverzeichnisses eine neue Datei mit dem Namen init.el an und fügen Sie unten stehenden Code ein.

(require 'package)
(add-to-list  'package-archives
 '("melpa" . "https://melpa.org/packages/") t)

Use-package

Nach einem Neustart ist das MELPA-Archiv aktiv. Sollten Sie im Minibuffer eine Meldung wie: „Failed to download ‘MELPA’ archive“ oder Ähnliches sehen, liegt das vermutlich an einem Versionskonflikt zwischen der Emacsversion und der Version des Programms Gnutls, das für den Betrieb benötigt wird. Beheben lässt sich das Problem, indem Sie die init.el durch eine Zeile ergänzen:

(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")
(require 'package)
(add-to-list  'package-archives
 '("melpa" . "https://melpa.org/packages/") t)

Öffnen Sie nach dem Neustart des Programms nun mit M-x package-list-packages die Liste, finden Sie dort nun viele zusätzliche mit „melpa“ gekennzeichnete Einträge.

Use-package

Wahrscheinlich werden Sie im Laufe der Zeit viele Pakete installieren. Dann jedoch wird es schwierig, mit dieser Art der Installation den Überblick zu behalten. Außerdem können unter ungünstigen Bedingungen auf diese Weise installierte Pakete die Performance des Emacs mit zunehmender Anzahl verringern.

Hier kommt use-package ins Spiel. Das ist eine kleine Erweiterung, mit der Sie die Installation von packages und deren Konfiguration zusammengefasst in der Konfigurationsdatei des Emacs vornehmen. Das vereinfacht die Installation und bringt neben einer besseren Übersicht über installierte packages auch einen Performancegewinn.

Um use-package nutzen zu können, installieren Sie das package entweder über die Paketverwaltung, oder durch folgenden Eintrag in Ihrer Konfigurationsdatei:

(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))

Speichern Sie die vorgenommenen Änderungen ab. (C-x C-s)

use-package einfache Installation von emacs-packages

Statt den Emacs neu zu starten, können Sie den Cursor hinter die letzte Klammer setzen und mit C-x C-e die Installation starten.

use-package emacs schrittweise konfigurieren

Wie Sie sehen, hängt Emacs einige Zeilen an Ihre init.el. Ab (custom-set-variables beginnt die Tabuzone, daran sollten Sie keine Änderungen vornehmen oder etwas löschen, bevor Sie genau wissen, was Sie tun – im Ernst. Den davor stehenden Bereich dürfen Sie für Ihre Installationen und Konfigurationen benutzen. Von nun an können Sie benötigte packages dort installieren. Das geschieht immer nach folgendem Muster:

(use-package packagename
:ensure t)

Das :ensure t stellt sicher, dass das package automatisch installiert wird, sofern es auf Ihrem System noch nicht vorhanden ist. Das ist z. B. sehr praktisch, wenn Sie den Emacs auf einem anderen Computer nutzen möchten. Wenn Sie dort Ihre init.el in den Ordner .emacs.d im Wurzelverzeichnis kopieren, werden automatisch alle benötigten Erweiterungen installiert. Damit Sie nicht immer daran denken müssen, :ensure t bei jedem Eintrag von use-package zu setzen, können Sie das auch von vornherein für alle pakete festlegen, die Sie mit use-package installieren möchten. Dazu Erweitern Sie die init.el:

 (unless (package-installed-p 'use-package)
    (package-refresh-contents)
    (package-install 'use-package))
(eval-and-compile
  (setq use-package-always-ensure t))

Ab jetzt können Sie auf das Keyword :ensure t bei der Installation verzichten.

Usepackage kennt weitere Keywords, mit der Sie bei Bedarf Einfluss auf die Installation und Konfiguration von packages nehmen können. Oft finden Sie in den Beschreibungen der packages im Internet Installationshinweise für die Verwendung von use-package. Vermutlich werden Sie nur einige der Keywords hin und wieder verwenden. Aber es ist gut zu wissen, dass es sie gibt, weitere Informationen finden Sie unter dem Link am Ende des Artikels.

Da ich gerade dabei bin: Oft finden Sie auf github und ähnlichen Seiten Emacs-packages, die Sie als Datei mit der Endung .el herunterladen und anschließend installieren können. Das kann man machen. Ich finde diese Methode allerdings umständlich und mit Updates ist dann auch nix. Deshalb schaue ich zunächst immer, ob der Paketmanager mir den Installationskandidat anzeigt und installiere diesen dann mit use-package. Aber das nur am Rande.

Zusammenfassung:

Wenn Sie zwischenzeitlich schon ein wenig mit dem in Emacs enthaltenen Tutorial gearbeitet haben, sind Sie bereits mit den Grundzügen der Bedienung vertraut. Sie haben das Paketsystem kennengelernt und im letzten Kapitel mit use-package die Installation und Konfiguration der packages übersichtlich vereinfacht. Im folgenden Artikel, Emacs Erweiterungen für Vielschreiber erläutere ich unter anderem eine weitere Besonderheit von Emacs, die Modes. Außerdem stelle ich Ihnen die wichtigsten packages meines Emacs-Setups vor, die ich für die Erstellung von Webartikeln und Ebooks nutze.

Quellen

Emacs Download https://www.gnu.org/software/emacs/

Wer des Englischen mächtig ist, findet im Emacs-Manual viele nützliche Informationen. https://www.gnu.org/software/emacs/manual/emacs.html

Downloadlink für eine Pdf mit den wichtigsten Tastenkombinationen. Ich mache Sie ganz bewusst erst jetzt darauf aufmerksam, weil die Vielfalt der Befehle für Einsteiger eher verwirrend ist. Sie werden, zumindest zu Beginn, nur einen kleinen Teil der Befehle nutzen. https://www.gnu.org/software/emacs/refcards/pdf/de-refcard.pdf

Das MELPA- https://melpa.org/#/

und ELPA-Repository https://www.emacswiki.org/emacs/ELPA

Eine gut Einführung zu use-package. Hier finden Sie weitere Keywords für die Konfiguration von Paketen. https://jwiegley.github.io/use-package/keywords/

Ähnliche Artikel