Emacs 31.1 automatiza las gramáticas de Tree-sitter y retira unexec
4 min de lectura

GNU Emacs 31.1 se publicó el 24 de agosto de 2026, y el cambio con más
probabilidades de alterar una jornada de trabajo es pequeño: las gramáticas de
Tree-sitter ya pueden instalarse solas. El anuncio de la versión, publicado en
la lista de correo info-gnu-emacs por Sean Whitton, remite a etc/NEWS para
los detalles en lugar de enumerarlos, así que la forma de esta versión sale de
los resúmenes publicados en paralelo: un sistema de completado reescrito, una
serie de órdenes para las disposiciones de ventanas y la eliminación del
volcador unexec, obsoleto desde Emacs 27.
Las gramáticas de Tree-sitter dejan de ser trabajo manual
Emacs 31.1 añade una opción treesit-auto-install-grammar que instala
automáticamente las gramáticas de Tree-sitter, según el repaso de la versión
que hace Mastering Emacs. Hasta ahora, usar un modo mayor de Tree-sitter
obligaba a conseguir la gramática por tu cuenta y a mantener su versión
alineada con la que esperaba el modo; un desajuste producía errores que
parecían fallos del editor y no un problema de dependencias. Mastering Emacs
describe la nueva opción como algo que elimina esa gestión manual de versiones.
La navegación con Tree-sitter también se completa. El mismo repaso menciona
treesit-forward-sexp-list y treesit-forward-list para moverse entre nodos
estructurales, además de una orden treesit-explore para inspeccionar el árbol
de análisis: la manera práctica de averiguar por qué un modo resalta o indenta
algo de forma inesperada.
El sistema de completado se reescribió
El búfer Completions ya puede aparecer de inmediato en lugar de esperar a que
se lo pidan, y el algoritmo de coincidencia flex se reescribió, según Mastering
Emacs y la cobertura de la versión candidata de Linux Compatible. Las
categorías de completado pueden heredar unas de otras, y RET selecciona ahora
el candidato elegido con M-UP o M-DOWN.
Linux Compatible documenta además que minibuffer-visible-completions gana un
valor up-down: «También puedes usar minibuffer-visible-completions con el
nuevo valor "up-down" para navegar por los completados de forma independiente
del minibúfer». Quien haya montado este comportamiento a base de paquetes de
terceros debería preguntarse, tras actualizar, cuáles de ellos quedan de más.
Las disposiciones de ventanas tienen órdenes propias
Reorganizar una disposición de ventanas exigía borrar y volver a dividir ventanas a mano. Emacs 31.1 añade órdenes que actúan sobre la disposición completa, enumeradas por Mastering Emacs:
| Orden | Qué hace |
|---|---|
window-layout-rotate-clockwise | Gira la disposición en sentido horario |
window-layout-counterclockwise | La gira en sentido contrario |
window-layout-flip-topdown | Voltea la disposición en vertical |
window-layout-flip-leftright | La voltea en horizontal |
window-layout-transpose | Traspone filas y columnas |
other-window-backward (C-x O) | Va a la ventana anterior |
split-window también puede resucitar una ventana borrada, según la misma
fuente. Junto a estas llegan dos cambios de terminal: xterm-mouse-mode está
activado por defecto en los terminales que lo admiten, y los child frames ya
funcionan en marcos TTY.
Qué se eliminó y una corrección que no llegó
El volcador unexec desaparece. Estaba obsoleto desde Emacs 27, y Mastering
Emacs califica su retirada como «el fin de una era», algo que afecta sobre todo
a quienes compilan Emacs por su cuenta o mantienen su empaquetado. También se
eliminó el programa ctags integrado, con Universal Ctags como sustituto
previsto.
Dos asuntos no entraron en esta versión. El trabajo sobre el recolector de basura se aplazó a Emacs 32, según Mastering Emacs. Y Linux Compatible informa de que una vulnerabilidad en las formas abreviadas de símbolos de Emacs Lisp tiene una mitigación en esta línea de versiones, pero que la solución completa queda para la versión 32: conviene saberlo si abres archivos Elisp de fuentes que no controlas.
La compatibilidad con Unicode pasa a la versión 17.0, con nuevos métodos de entrada para griego politónico, tifinagh, lenguas iroquesas del norte como el mohawk y el oneida, variantes del birmano y siríaco.
Qué significa esto para los desarrolladores
El cambio de Tree-sitter es el primero sobre el que actuar. Si tu configuración
lleva código propio para instalar gramáticas o un commit de gramática fijado,
prueba treesit-auto-install-grammar en una configuración de prueba antes de
borrar nada, y quita después lo que quede sobrando. Con el completado pasa lo
mismo: el búfer Completions inmediato y el nuevo motor flex se solapan con lo
que varios paquetes populares existen para ofrecer, y usar 31.1 una tarde con
una configuración deliberadamente mínima es la vía más rápida para descubrir
qué ya no necesitas arrastrar.
Si compilas Emacs desde el código fuente o mantienes un paquete para una
distribución, lee la retirada de unexec como un cambio en el sistema de
compilación y revisa tu receta antes de que tus usuarios actualicen. La
eliminación de ctags merece el mismo trato: cualquier cosa que invoque el
binario incluido necesitará Universal Ctags instalado.
Dos motivos aconsejan paciencia antes que prisa. El propio anuncio delega el
detalle en etc/NEWS, así que C-h n dentro de un 31.1 recién compilado es la
lista con autoridad, y no un resumen, este incluido. Y como la corrección de
las formas abreviadas de símbolos solo llega en Emacs 32, la parte de seguridad
queda incompleta; si abres Elisp no fiable con regularidad, es una razón para
seguir atento en lugar de dar el asunto por cerrado.
Sources
- Emacs 31.1 released - GNU info-gnu-emacs mailing list
- What's New in Emacs 31.1? - Mastering Emacs
- GNU Emacs 31.1 RC1: Completion Overhaul, Window Commands and Unicode 17.0 - Linux Compatible