Skip to content
Tech AI Wire
Dev Stack

Emacs 31.1 automatisiert Tree-sitter-Grammatiken und streicht unexec

4 Min. Lesezeit

Von Tech AI Wire Team

The GNU gnu-head logo drawn in ink outline with a red arrow curving down into it

GNU Emacs 31.1 wurde am 24. August 2026 veröffentlicht, und die Änderung, die den Arbeitstag am ehesten verändert, ist eine kleine: Tree-sitter-Grammatiken können sich jetzt selbst installieren. Die Ankündigung, von Sean Whitton auf der Mailingliste info-gnu-emacs veröffentlicht, verweist für die Details auf etc/NEWS statt sie aufzuzählen; die Form des Releases ergibt sich daher aus den begleitend veröffentlichten Übersichten - ein neu geschriebenes Vervollständigungssystem, eine Reihe von Befehlen für Fensterlayouts und die Entfernung des unexec-Dumpers, der seit Emacs 27 als veraltet gilt.

Tree-sitter-Grammatiken sind keine Handarbeit mehr

Emacs 31.1 ergänzt eine Option treesit-auto-install-grammar, die Tree-sitter-Grammatiken automatisch installiert - so die Übersicht von Mastering Emacs zum Release. Bisher bedeutete die Nutzung eines Tree-sitter-Hauptmodus, die Grammatik selbst zu beschaffen und ihre Version mit der Erwartung des Modus abzugleichen; eine Abweichung erzeugte Fehler, die wie Editor-Bugs aussahen statt wie ein Abhängigkeitsproblem. Mastering Emacs beschreibt die neue Option so, dass sie diese manuelle Versionspflege beseitigt.

Auch die Tree-sitter-Navigation wird vollständiger. Dieselbe Übersicht nennt treesit-forward-sexp-list und treesit-forward-list für die Bewegung über strukturelle Knoten sowie einen Befehl treesit-explore zur Untersuchung des Parse-Baums - der praktische Weg herauszufinden, warum ein Modus etwas unerwartet hervorhebt oder einrückt.

Das Vervollständigungssystem wurde neu geschrieben

Der Completions-Puffer kann jetzt sofort erscheinen, statt darauf zu warten, angefordert zu werden, und der Flex-Matching-Algorithmus wurde neu geschrieben - das berichten sowohl Mastering Emacs als auch die Berichterstattung von Linux Compatible zum Release Candidate. Vervollständigungskategorien können voneinander erben, und RET wählt nun den mit M-UP oder M-DOWN ausgewählten Kandidaten.

Linux Compatible dokumentiert außerdem, dass minibuffer-visible-completions einen Wert up-down erhält: „Sie können minibuffer-visible-completions auch mit dem neuen Wert 'up-down' verwenden, um Vervollständigungen unabhängig vom Minibuffer zu navigieren." Wer dieses Verhalten bisher aus Drittanbieter-Paketen zusammengesetzt hat, sollte nach dem Upgrade fragen, welche dieser Pakete nun überflüssig sind.

Fensterlayouts bekommen eigene Befehle

Ein Fensterlayout umzustellen bedeutete bisher, Fenster von Hand zu löschen und neu zu teilen. Emacs 31.1 ergänzt Befehle, die auf das Layout als Ganzes wirken, aufgeführt von Mastering Emacs:

BefehlWirkung
window-layout-rotate-clockwiseDreht das Layout im Uhrzeigersinn
window-layout-counterclockwiseDreht es in die andere Richtung
window-layout-flip-topdownSpiegelt das Layout vertikal
window-layout-flip-leftrightSpiegelt es horizontal
window-layout-transposeVertauscht Zeilen und Spalten
other-window-backward (C-x O)Wechselt zum vorherigen Fenster

Laut derselben Quelle kann split-window außerdem ein gelöschtes Fenster wiederherstellen. Zwei terminalnahe Änderungen kommen hinzu: xterm-mouse-mode ist in Terminals, die es unterstützen, standardmäßig aktiviert, und Child Frames funktionieren nun auch auf TTY-Frames.

Was entfernt wurde - und eine Korrektur, die fehlt

Der unexec-Dumper ist weg. Er galt seit Emacs 27 als veraltet, und Mastering Emacs bezeichnet seine Entfernung als „das Ende einer Ära" - relevant vor allem für alle, die Emacs selbst bauen oder die Paketierung dafür pflegen. Auch das eingebaute Programm ctags wurde entfernt; erwarteter Ersatz ist Universal Ctags.

Zwei Dinge haben es nicht in dieses Release geschafft. Die Arbeit am Garbage Collector wurde laut Mastering Emacs auf Emacs 32 verschoben. Und Linux Compatible berichtet, dass eine Schwachstelle in den Symbol-Kurzformen von Emacs Lisp in dieser Release-Linie zwar abgemildert wird, die vollständige Behebung aber auf Version 32 vertagt ist - wichtig zu wissen, wenn Sie Elisp-Dateien aus Quellen öffnen, die Sie nicht kontrollieren.

Die Unicode-Unterstützung geht auf Version 17.0, mit neuen Eingabemethoden für polytonisches Griechisch, Tifinagh, nördliche irokesische Sprachen wie Mohawk und Oneida, burmesische Varianten und Syrisch.

Was das für Entwickler bedeutet

Die Tree-sitter-Änderung ist die, bei der man zuerst handeln sollte. Wenn Ihre Konfiguration selbstgeschriebenen Code zur Grammatikinstallation oder einen festgepinnten Grammatik-Commit enthält, probieren Sie treesit-auto-install-grammar in einer Scratch-Konfiguration aus, bevor Sie etwas löschen - und entfernen Sie dann, was dadurch überflüssig wird. Für die Vervollständigung gilt dasselbe: Der sofort erscheinende Completions-Puffer und der neu geschriebene Flex-Matcher überschneiden sich mit dem, wofür mehrere verbreitete Pakete existieren; 31.1 einen Nachmittag lang mit einer absichtlich minimalen Konfiguration zu fahren, ist der schnellste Weg herauszufinden, was Sie nicht länger mitschleppen müssen.

Wer Emacs aus dem Quellcode baut oder ein Paket für eine Distribution pflegt, sollte die unexec-Entfernung als Änderung am Build-System lesen und das eigene Rezept prüfen, bevor Nutzer upgraden. Die Entfernung von ctags verdient dieselbe Behandlung: Alles, was das mitgelieferte Binary aufruft, braucht stattdessen ein installiertes Universal Ctags.

Zwei Punkte sprechen für Geduld statt Eile. Die Ankündigung selbst verweist für die Details auf etc/NEWS, also ist C-h n in einem frisch gebauten 31.1 die verbindliche Liste - nicht irgendeine Zusammenfassung, auch nicht diese. Und weil die Korrektur der Symbol-Kurzformen erst in Emacs 32 landet, ist die Sicherheitslage hier unvollständig; wer regelmäßig nicht vertrauenswürdiges Elisp öffnet, hat damit einen Grund, weiter aufmerksam zu bleiben, statt die Sache für abgeschlossen zu halten.

Sources

  1. Emacs 31.1 released - GNU info-gnu-emacs mailing list
  2. What's New in Emacs 31.1? - Mastering Emacs
  3. GNU Emacs 31.1 RC1: Completion Overhaul, Window Commands and Unicode 17.0 - Linux Compatible