Anteprima di Emacs 31: Una Guida per Utenti Giornalieri alle Prossime Funzionalità
AI News

Anteprima di Emacs 31: Una Guida per Utenti Giornalieri alle Prossime Funzionalità

5 min
18/06/2026
EmacsText EditorsOpen SourceSoftware Development

Anteprima di Emacs 31: Una Guida per Utenti Giornalieri alle Prossime Funzionalità

Mentre le release ufficiali per piattaforme principali come iOS 27 e Windows 11 catturano i titoli dei giornali mainstream, la comunità open-source sta silenziosamente preparando i propri aggiornamenti significativi. Nel mondo degli ambienti di editing profondamente personalizzabili ed estensibili, il ramo di sviluppo per GNU Emacs 31 si sta rivelando una release sostanziale, piena di miglioramenti che affinano l'esperienza core.

Per gli utenti esperti che vivono dentro il loro editor, questi miglioramenti incrementali possono essere trasformativi. A differenza delle liste di funzionalità ampie e incentrate sui consumatori viste negli aggiornamenti dei sistemi operativi commerciali - come il supporto linguistico ampliato per tastiere e Promemoria di iOS 27 o le ottimizzazioni delle prestazioni di Windows 11 - lo sviluppo di Emacs si concentra sull'empowerare l'utente con un maggiore controllo e sulla riduzione dell'attrito nella configurazione.

Uno sviluppatore, Rahul M. Juliato, ha utilizzato quotidianamente build dal ramo emacs-31 e master per mesi, integrando nuove funzionalità in una configurazione che esclude pacchetti esterni. La sua esperienza, documentata in un dettagliato post sul blog, fornisce una rara anteprima reale del futuro dell'editor, evidenziando cambiamenti che spostano la funzionalità dal codice di colla scritto dall'utente al sistema core.

Tree-Sitter: Da Configurazione Manuale ad Automatica

Un miglioramento di spicco in Emacs 31 affronta un punto dolente da lungo tempo: la configurazione di Tree-sitter. In precedenza, abilitare un *-ts-mode richiedeva di popolare manualmente treesit-language-source-alist, chiamare treesit-install-language-grammar e sperare che la propria toolchain potesse compilare la grammatica.

Emacs 31 introduce due variabili cruciali che automatizzano gran parte di questo processo. Impostare treesit-enabled-modes su t commuta automaticamente le major mode alle loro varianti Tree-sitter dove disponibili. Più crucialmente, impostare treesit-auto-install-grammar su t induce Emacs a recuperare e costruire le grammatiche mancanti su richiesta, eliminando gli errori di configurazione.

Questa integrazione core rispecchia l'esperienza precedentemente fornita dal pacchetto esterno treesit-auto. L'effetto a catena è una significativa riduzione nella configurazione boilerplate. Le fonti di grammatica predefinite per linguaggi come TypeScript, TSX, Rust, TOML, YAML e Dockerfile sono ora incorporate all'interno delle mode stesse.

Sperimentale ma Promettente: markdown-ts-mode

Una delle inclusioni più ambiziose è un markdown-ts-mode sperimentale. Originato da una proposta di Rahul Juliato e significativamente sviluppato da Stéphane Marks, questa modalità mira a fornire un'esperienza di editing Markdown di prima classe all'interno di Emacs.

La sua filosofia di design sarà familiare agli utenti di Org-mode, con simili scorciatoie da tastiera e navigazione strutturale per titoli e sezioni. Il suo trucco più notevole è il rendering live e colorato dei blocchi di codice: i blocchi di codice fenced sono fontificati utilizzando la major mode *reale* per quel linguaggio, fornendo un'evidenziazione della sintassi corretta per linguaggi come Elisp senza configurazione aggiuntiva.

La modalità supporta anche la visualizzazione di immagini inline, rendendo i link ![](path) come immagini reali all'interno del buffer. Come funzionalità sperimentale, non è ancora collegata a auto-mode-alist; gli utenti devono caricarla esplicitamente o aggiungerla essi stessi. Il feedback è attivamente cercato tramite la lista dei bug per spostarla da "sperimentale" a "pronta".

continua a leggere sotto...

Completamenti e Flussi di Lavoro di Editing più Intelligenti

Emacs 31 porta diversi raffinamenti alle interazioni di completamento e minibuffer, mirando a un'esperienza più reattiva e immediata. Le nuove variabili completion-eager-update e completion-eager-display aggiornano l'interfaccia utente di completamento mentre si digita, anziché attendere prompt espliciti.

Impostare minibuffer-visible-completions su 'up-down consente una navigazione intuitiva tra i candidati visibili con i tasti freccia. Icomplete, il sistema di completamento integrato, riceve anch'esso attenzione, incorporando una patch per il comportamento verticale in-buffer e indicatori di prefisso, riducendo ulteriormente la necessità di framework di completamento esterni.

I flussi di lavoro di editing sono migliorati con nuovi comandi di gestione delle finestre legati a C-x w. transpose-windows scambia disposizioni orizzontali e verticali, rotate-windows ruota il layout e i comandi flip-window lo specchiano orizzontalmente o verticalmente. Questi strumenti consentono una rapida riorganizzazione del layout senza dividere e uccidere manualmente le finestre.

Qualità della Vita: La Lunga Coda dei Miglioramenti

Oltre alle funzionalità principali, Emacs 31 include una serie di piccoli ma impattanti miglioramenti. Molti affrontano specifiche frustrazioni degli utenti da lungo tempo:

  • kill-region-dwim: Impostato su 'emacs-word, questo risolve un problema vecchio di decenni: premere C-w senza una regione attiva ora uccide una parola all'indietro anziché generare un errore "mark non è attivo".
  • view-lossage-auto-refresh: Trasforma C-h l (view-lossage) in una visualizzazione live e aggiornata delle recenti sequenze di tasti, preziosa per insegnare o eseguire debug.
  • ielm-history-file-name: Infine consente alla cronologia degli input di IELM (REPL di Emacs Lisp) di persistere tra le sessioni, abbinando il comportamento delle shell e altre modalità comint.
  • native-comp-async-on-battery-power: Quando impostato su nil, questo impedisce ai lavori di compilazione nativa in background di essere eseguiti con alimentazione a batteria, un vantaggio per gli utenti di laptop.
  • tty-tip-mode: Porta la funzionalità dei tooltip agli utenti del terminale (-nw).

Altri aggiustamenti notevoli includono buffer xref modificabili (eliminando la necessità di hack personalizzati per modificare i risultati della ricerca), una Speedbar che si aggancia in una finestra laterale anziché in un frame separato, e vari miglioramenti al controllo delle versioni (VC) come vc-dir-hide-up-to-date-on-revert.

Perché Utilizzare Quotidianamente un Ramo di Sviluppo?

Eseguire una versione non rilasciata di Emacs, proprio come sperimentare con un launcher Android personalizzato rispetto a quello predefinito del produttore, significa cercare un'esperienza personalizzata e ottimale. Per Juliato, è un modo per capire cosa sta arrivando e ridurre la dipendenza dal codice di colla della configurazione personale.

Ogni release assorbe funzionalità che gli utenti precedentemente dovevano implementare manualmente, portando a file di configurazione più corti e manutenibili. Questa filosofia di un core "con batterie incluse" ma infinitamente migliorabile sta in contrasto con gli ecosistemi chiusi dei sistemi operativi mainstream.

Mentre iOS 27 aggiunge la categorizzazione delle liste della spesa e Windows 11 si concentra sulle prestazioni, lo sviluppo di Emacs dà priorità all'agenzia dell'utente. La prossima release dimostra un impegno continuo nel perfezionare gli strumenti fondamentali per programmatori, scrittori e amministratori di sistema che richiedono un editor che si adatti a loro, non il contrario.