Skip to content
Tech AI Wire
Dev Stack

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

4 min de lectura

Por 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 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:

OrdenQué hace
window-layout-rotate-clockwiseGira la disposición en sentido horario
window-layout-counterclockwiseLa gira en sentido contrario
window-layout-flip-topdownVoltea la disposición en vertical
window-layout-flip-leftrightLa voltea en horizontal
window-layout-transposeTraspone 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

  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