Emacs bringt sein eigenes Hilfe-System mit — vollständig offline, in den Editor integriert und in vielen Fällen deutlich schneller als eine Web-Suche. Es beantwortet Fragen wie „Was tut diese Taste?", „Wie heißt nochmal der Befehl für X?" oder „Wo ist diese Funktion definiert?" direkt im laufenden Editor. Dieser Artikel beschreibt das Hilfe-System auf Konzept-Ebene: welche Hilfe-Typen es gibt, was sie liefern und wann du welche nutzt. Die konkreten Tastenkombinationen, mit denen die Hilfe aufgerufen wird, folgen im nächsten Kapitel zur Tasten-Notation — hier zählen erst einmal die Befehlsnamen und ihr Zweck.

Die fünf Säulen des Hilfe-Systems

Das eingebaute Hilfe-System ist kein einzelner Befehl, sondern eine Familie zusammenhängender Werkzeuge. Jedes davon beantwortet eine andere Art von Frage. Wer diese fünf Säulen kennt, findet praktisch jede Information über Emacs, ohne den Editor zu verlassen.

SäuleBefehlsfamilieBeantwortet die Frage
Beschreibendescribe-*„Was ist diese Taste, diese Funktion, diese Variable, dieser Modus?"
Suchenapropos-*„Wie heißt nochmal der Befehl, der ungefähr X tut?"
Manualinfo„Wo steht das offizielle Kapitel zu diesem Thema?"
Unix-Dokuman„Was sagt die Manpage zu diesem Systemtool?"
Erstkontakthelp-with-tutorial„Wie funktioniert Emacs überhaupt — geführt, in meiner Sprache?"

Die Trennung ist bewusst: describe-* ist punktuell und exakt, apropos-* ist breit und exploratorisch, info ist linear und kapitelartig, man öffnet die Unix-Welt im Editor, und help-with-tutorial ist der einzige Einstieg, der dich selbst durch die Bedienung führt. Die folgenden Sektionen nehmen jede dieser Säulen einzeln auseinander.

describe-* als tägliches Werkzeug

Die describe-Familie ist das, was du beim Lernen von Emacs am häufigsten benutzen wirst. Sie beschreibt jedes interne Objekt des Editors — und „intern" ist hier weit gefasst, weil in Emacs praktisch alles ein Symbol ist: Tasten, Befehle, Variablen, Modi, Pakete, sogar einzelne Zeichen.

Die wichtigsten Mitglieder der Familie:

  • describe-key — „Was tut die Taste, die ich gleich drücke?" Du rufst den Befehl auf, drückst eine beliebige Tastenkombination, und Emacs zeigt dir, welches Kommando dahintersteht, in welcher Datei es definiert ist und was es tut.
  • describe-function — vollständige Doku zu einer benannten Funktion: Signatur, alle Argumente, Doc-String, Definition-Ort.
  • describe-variable — aktueller Wert, Default-Wert, Doc-String und Definitionsstelle einer Variable.
  • describe-mode — listet für den aktiven Buffer alle wirksamen Major- und Minor-Modes inklusive der dazugehörigen Keymaps und Hooks.
  • describe-package — beschreibt ein installiertes oder verfügbares Paket inklusive Version, Abhängigkeiten und Repository-Link.
  • describe-char — zeigt zu dem Zeichen unter dem Cursor Unicode-Codepoint, Font, Kategorie und die wirksame Schriftart.

Ein typischer Help-Buffer für describe-function sieht inhaltlich so aus:

text *Help* — describe-function für goto-line
goto-line is an interactive autoloaded compiled Lisp function in
‘simple.el’.

(goto-line LINE &optional BUFFER)

  Probably introduced at or before Emacs version 1.

Go to LINE, counting from line 1 at beginning of buffer.
If called interactively, a numeric prefix argument specifies
LINE; without a prefix argument, read LINE from the minibuffer.
...

This command is in ‘global-map’.

Bemerkenswert sind drei Dinge: erstens steht oben der Definitionsort (simple.el) — und dieser Pfad ist im Help-Buffer ein Hyperlink, der direkt in den Quelltext springt. Zweitens steht in der Klammer die vollständige Signatur mit optionalen Argumenten. Drittens enthält der Buffer am Ende oft eine Liste der Keymaps, in denen die Funktion gebunden ist — du erfährst also nebenbei, mit welchen Tasten sich der Befehl aufrufen lässt.

describe-key ist davon nochmal abzuheben: Es ist das wichtigste Lern-Werkzeug überhaupt, gerade in fremden Konfigurationen oder Distributionen wie Doom oder Spacemacs. Statt zu raten, was eine Taste tun könnte, fragst du den Editor selbst — und bekommst Befehl, Definition und Doku in einem Aufwasch.

apropos als Suchmaschine

Wenn describe-* der scharfe Punkt-Treffer ist, ist apropos-* die Suchmaschine über Emacs' eigene Doku. Der Name kommt aus dem Französischen („à propos") und meint im Unix-Kontext seit jeher: „zeig mir alles, was thematisch zu meinem Suchbegriff passt". Genau das tut der Befehl — er sucht nicht nur in Namen, sondern auch in den Doc-Strings.

Die wichtigsten Varianten:

  • apropos-command — sucht ausschließlich unter den interaktiven Befehlen. Das ist die richtige Wahl, wenn du nach „etwas, das ich aufrufen kann" suchst.
  • apropos — sucht über alle Symbole, also auch nicht-interaktive Funktionen, Variablen, Faces und Klassen. Ergibt mehr Treffer und ist nützlich beim Lesen von Code.
  • apropos-variable — nur Variablen. Praktisch, wenn du eine Customization-Option suchst.
  • apropos-value — sucht nicht in Namen, sondern in Werten von Variablen. Selten gebraucht, aber gold wert für Detektivarbeit.
  • apropos-documentation — durchsucht nur die Doc-Strings. Wenn du ein Wort kennst, das in der Erklärung vorkommen muss, ist das die richtige Schaufel.

Die Eingabe ist standardmäßig ein Regex, kein wörtlicher String. Wer also nach Befehlen rund um „buffer" sucht, gibt einfach buffer ein; wer es genauer einschränken will, kann mit Pattern wie ^kill-.*buffer$ arbeiten. In der Praxis ist apropos-command mit zwei oder drei Stichworten fast immer schneller als jede Web-Suche — du bekommst sofort die richtigen Treffer in deiner installierten Emacs-Version, ohne die Falsch-Treffer aus alten Tutorials.

text *Apropos* — apropos-command buffer kill (Auszug)
kill-buffer
  Command: Kill the buffer specified by BUFFER-OR-NAME.

kill-buffer-and-window
  Command: Kill the current buffer and delete the selected window.

kill-matching-buffers
  Command: Kill buffers whose name matches the specified REGEXP.

kill-some-buffers
  Command: Kill some buffers.  Asks the user whether to kill each one.

Auch dieser Buffer ist voller Hyperlinks: Jeder Befehlsname springt in den dazugehörigen describe-function-Buffer. apropos und describe-* sind also keine getrennten Werkzeuge, sondern Teile eines durchnavigierbaren Netzes.

Der info-Reader und das vollständige Manual

info öffnet den Info-Reader, eine eigenständige Texinfo-basierte Doku-Oberfläche, die seit Jahrzehnten der GNU-Standard für Software-Manuals ist. Anders als HTML-Doku im Browser ist Info ein hierarchisches, knotenbasiertes Format mit eigenem Index und maschinenlesbaren Querverweisen — perfekt geeignet, um in einem Editor navigiert zu werden.

Was direkt nach der Installation verfügbar ist, hängt vom Paket-Stand ab, umfasst aber typischerweise:

  • das Emacs-Manual — die offizielle, vollständige Referenz zum Editor selbst.
  • die Elisp-Reference — Sprachreferenz zu Emacs Lisp, mit jeder eingebauten Funktion.
  • das Org-Mode-Manual, oft die mit Abstand längste Einzel-Doku auf dem System.
  • Manuals zu Auctex, Magit, Eglot, use-package, Tramp, Gnus, Calc und dutzenden weiteren Standard-Paketen.

Die meisten Pakete, die du später über package-install nachziehst, bringen ihr Info-Manual mit. Emacs aktualisiert das Info-Verzeichnis beim Installieren automatisch, sodass neue Manuals direkt im Verzeichnis-Knoten (dir) auftauchen.

Strukturell besteht jedes Info-Manual aus Knoten (vergleichbar mit einer HTML-Seite), die in einem Baum aus Kapiteln und Unterkapiteln stehen. Zu jedem Manual gibt es einen Index, der nach Konzepten, Befehlen und Variablen sortiert ist und punktgenaue Suche erlaubt. Wer Web-Suche gewohnt ist, muss sich kurz daran gewöhnen, dass „blättern" und „indexieren" in Info getrennte Bewegungen sind — die Investition lohnt sich, weil die Treffer im Info-Reader immer zur exakt installierten Version passen.

Die konkreten Tasten zur Navigation (Knoten vor/zurück, Index aufrufen, Querverweise folgen, Reader schließen) folgen im Kapitel Tasten-Notation und im späteren Info-Reader-Artikel. Auf dieser Ebene reicht: info öffnet den Reader, im Reader gibt es ein Inhaltsverzeichnis, einen Index und Querverweise — und alles davon ist anklickbar.

man-Pages direkt im Editor

Über den Befehl man öffnet Emacs eine Unix-Manpage in einem eigenen Buffer. Die Oberfläche ist info-ähnlich aufgebaut: die typischen Manpage-Abschnitte (NAME, SYNOPSIS, DESCRIPTION, OPTIONS, SEE ALSO) werden hervorgehoben, und Verweise auf andere Manpages — also etwa printf(3) im SEE ALSO-Block — sind Hyperlinks, die direkt die referenzierte Page öffnen.

Das ist in zwei Situationen besonders praktisch:

  • Während des Codens: API-Suche für Standard-Bibliotheks-Funktionen, ohne in den Browser zu wechseln. Wer in C, Shell oder Systemnähe arbeitet, hat Manpages ständig offen.
  • Beim Lesen fremder Skripte: Unbekannte Tools lassen sich direkt im Editor nachschlagen und über die Querverweise weiter erforschen.

Auf System-Ebene nutzt Emacs dabei das systemweite man-Programm und seine konfigurierten Pfade — du siehst also genau die Manpages, die auch im Terminal verfügbar wären, nur eben mit Editor-Komfort: Suche, Bookmarks, mehrere Manpages parallel in eigenen Buffers, copy-paste in deine Code-Datei.

Das eingebaute Tutorial

help-with-tutorial öffnet das mitgelieferte, interaktive Emacs-Tutorial in einem regulären Buffer. Es ist seit den frühen Versionen Teil des Editors, wurde stetig gepflegt und ist in zahlreiche Sprachen übersetzt — Deutsch inklusive. Welche Sprachfassung geladen wird, hängt von der Locale-Einstellung deines Systems ab; auf einem deutsch konfigurierten Mac, Windows oder Linux öffnet sich automatisch die deutsche Version.

Was das Tutorial besonders macht:

  • Es ist interaktiv: Du liest nicht nur, sondern führst die beschriebenen Tasten direkt im Tutorial-Buffer aus. Der Cursor bewegt sich tatsächlich, Texte werden tatsächlich gelöscht und wiederhergestellt.
  • Es ist ein echter, schreibbarer Buffer: Eigene Notizen, Markierungen und Test-Texte kannst du mitten ins Tutorial schreiben, ohne dass etwas kaputtgeht. Beim nächsten Öffnen liegt das ursprüngliche Tutorial wieder unverändert vor.
  • Es deckt genau die Basis-Bedienung ab, die für die ersten Wochen reicht: Cursor-Bewegung, Editieren, Suche, Buffer- und Window-Wechsel, Speichern, Hilfe.

Die ehrliche Empfehlung an dieser Stelle: Investiere die rund 30 Minuten in dieses Tutorial, bevor du irgendeine Distribution oder ein größeres Konfigurations-Repo aus dem Netz lädst. Es spart erfahrungsgemäß ein Jahr Frust, weil danach jede weitere Doku — auch diese hier — auf vertrautem Boden steht.

Hilfe-Buffer lesen und verlassen

Alle Hilfe-Werkzeuge schreiben ihre Ausgabe in einen eigenen Buffer — meist mit Sternchen-Konvention im Namen, etwa *Help* für describe-*, *Apropos* für apropos-* oder *info* für den Info-Reader. Diese Buffer verhalten sich grundsätzlich wie alle anderen: sie bleiben offen, bis du sie schließt, lassen sich umschalten, splitten und gleichzeitig anzeigen.

Drei Eigenschaften lohnen es, beim Lesen im Hinterkopf zu behalten:

  • Hyperlinks überall. Was wie normaler Text aussieht — Funktionsnamen, Variablen, Dateipfade, Querverweise — ist in Hilfe-Buffern fast immer anklickbar oder aktivierbar. Wer mit der Maus darüberfährt, sieht es am Cursor; per Tastatur wandert man von Link zu Link.
  • Quellcode-Sprung. Der Definitionsort-Link in einem describe-function-Buffer öffnet die echte Elisp-Quelldatei, springt zur Definition und ist editierbar. Das ist eines der mächtigsten Lern-Werkzeuge überhaupt: Du kannst jede mitgelieferte Funktion sofort lesen.
  • Zurück und vorwärts. Hilfe-Buffer haben eine eigene Historie, ähnlich einem Browser. Du kannst durch besuchte Hilfe-Seiten zurück- und wieder vorblättern, ohne sie neu zu suchen.

Das Schließen eines Hilfe-Buffers ist keine eigene Wissenschaft — es funktioniert wie bei jedem anderen Buffer. Über die Menüleiste (Buffers → entsprechenden Eintrag wählen und schließen, oder FileClose) lässt sich der Buffer auch ohne Tastenkenntnis loswerden. Die deutlich schnellere Tastenkombination dafür ist Teil des Kapitels Tasten-Notation und der darauffolgenden Bedienkonzept-Artikel.

Besonderheiten

Das Hilfe-System ist offline-vollständig

Alles, was in diesem Artikel beschrieben wird, funktioniert ohne Internetverbindung — im Flugzeug, auf einem isolierten Server oder hinter restriktiver Firewall. Die Doku stammt aus den Doc-Strings deiner installierten Version und passt deshalb immer exakt zu deinem Emacs — keine Versions-Diskrepanzen wie bei alten Stack-Overflow-Antworten.

"describe-key" ist das Lern-Werkzeug Nr. 1

Sobald du in einer fremden Konfiguration oder Distribution (Doom, Spacemacs, …) sitzt, ist describe-key der ehrlichste Weg, herauszufinden, was eine Taste tatsächlich tut — nicht, was sie laut Doku tun sollte. Gerade in stark angepassten Setups weichen Voreinstellung und Realität oft voneinander ab; describe-key zeigt die Wahrheit aus erster Hand.

Das mitgelieferte Tutorial ist auf Deutsch verfügbar

help-with-tutorial öffnet automatisch die Sprachfassung, die zur System-Locale passt. Auf einem deutsch konfigurierten Betriebssystem ist das die deutsche Übersetzung — kein zusätzlicher Download, kein Sprachpaket, keine Konfiguration nötig. Wer trotzdem die englische Originalfassung lesen möchte, kann sie über das Argument zum selben Befehl gezielt anfordern.

Info-Reader denkt in Knoten, nicht in Seiten

Wer Web-Suche gewohnt ist, scrollt im Info-Reader zunächst reflexartig — und wundert sich, dass Kapitel scheinbar abrupt enden. Tatsächlich ist jeder Knoten eine eigene Einheit, und der Übergang zum nächsten Knoten ist eine bewusste Bewegung. Diese Mini-Umgewöhnung kostet zehn Minuten und macht die Doku dauerhaft übersichtlicher als endlose HTML-Seiten.

Hilfe-Buffer haben Hyperlinks — alles ist klickbar

Was im Help-, Apropos- oder Info-Buffer wie schlichter Text aussieht — Funktionsnamen, Variablennamen, Dateipfade, Querverweise — ist fast immer anklickbar. Wer das einmal verinnerlicht hat, navigiert durch die Emacs-Doku wie durch ein gut verlinktes Wiki, nur eben offline und passgenau zur installierten Version.

"apropos" mit Regex schlägt jede Web-Suche

Sobald du die ungefähre Begriff-Familie kennst (window, kill, buffer, narrow, dired-…), liefert apropos-command in Millisekunden eine vollständige Trefferliste — sortiert, mit Kurzbeschreibung, mit Sprung in die Voll-Doku. Web-Suchen können da schon konzeptbedingt nicht mithalten: Sie wissen weder, welche Pakete du installiert hast, noch, welche Version du fährst.

Weiterführende Ressourcen

Externe Quellen

Verwandte Artikel

/ Weiter

Zurück zu Grundlagen

Zur Übersicht