Emacs 31.1 正式发布了,你删除了哪些包?简化了什么配置?

Emacs 31.1 在2026年8月24日已正式发布。

新的内容参考:emacs/etc/NEWS at emacs-31.1 · emacs-mirror/emacs · GitHub

Mastering Emacs 作者也总结了一篇文章介绍新的内容:What's New in Emacs 31.1? - Mastering Emacs

我删除了以下包:

  1. treesit-fold → 使用内置的 hs-minor-mode
  2. hide-mode-line → 使用内置的 mode-line-invisible-mode

另外,通过设置 treesit-enabled-modes 为 t 启用所有支持的 ts-mode。

欢迎大家补充哪些比较有用的新功能。

Windows 平台的安装包也已经发布: https://ftpmirror.gnu.org/emacs/windows/emacs-31/emacs-31.1-installer.exe

6 个赞

你是不是想说2026年8月24日? :grinning_face:

是的,多谢指正。

似乎 wgrep 也内置了,不需要再装额外的包了。以后不止 wgrep, xref 也可以原地修改然后直接 apply 到原文件了。

treesit 现在不用自己手动指定 src 和版本了,还是很好的,更新以后可以精简我的 treesit 配置。

3 个赞
json-ts-jq-path-at-point

我把我配置当patch提了,可以删配置了 :joy:

1 个赞

window-layout-rotate-clockwise 是我觉得最期待的功能之一,可以把自己糊的window转转转给删了

1 个赞

不会转晕吗?我一般是直接交换窗口,更直接些

这个我很早就配置了,但用的很少,平时最多也就开2个窗口(window),最多的就是单窗口使用。

没有这种情况嘛?

| 1 | 2 |
|   3   |

2干掉之后成了

|   1   |
|   3   |

然后想转成

| 1 | 3 |

在early-init.el里配置load-path-filter-function,大家一起进入0.1秒启动时代。

之前一直用的 (setq-default mode-line-format nil) ,然后看了下mode-line-invisible-mode的源码,发现也是同样道理,只不过做了toggle时的状态保存与恢复。

(define-minor-mode mode-line-invisible-mode
  "Toggle the mode-line visibility of the current buffer.
Hide the mode line if it is shown, and show it if it's hidden."
  :global nil
  :group 'mode-line
  (if mode-line-invisible-mode
      (progn
        (add-hook 'after-change-major-mode-hook #'mode-line-invisible-mode nil t)
        (setq mode-line-invisible--buf-state
              (buffer-local-set-state mode-line-format nil)))

    (remove-hook 'after-change-major-mode-hook #'mode-line-invisible-mode t)

    ;; Restore buffer mode line if buffer had one by default
    (when mode-line-invisible--buf-state
      (setq mode-line-invisible--buf-state
            (buffer-local-restore-state mode-line-invisible--buf-state)))

    ;; Otherwise display one
    (unless mode-line-format
      (setq-local mode-line-format (default-value 'mode-line-format)))

    ;; Update mode line
    (when (called-interactively-p 'any)
      (force-mode-line-update))))

我发现emacs 31.1-windows-build下emoji是彩色的了!:tada:

Emacs on MS-Windows now supports color fonts. On Windows 8.1 and later versions, Emacs now uses DirectWrite to draw text, which supports color fonts. This can be disabled by setting the variable ‘w32-inhibit-dwrite’ to t. Also see ‘w32-dwrite-available’ and ‘w32-dwrite-reinit’ to check availability and to configure the DirectWrite rendering parameters.

To show color Emojis in Emacs, customize the default fontset to use a color Emoji font installed on your system for the ‘emoji’ script.

Ref: https://www.masteringemacs.org/article/whats-new-in-emacs-311#:~:text=Emacs%20on%20MS-Windows%20now%20supports%20color%20fonts.

2 个赞

wdired 一直是内置的吧?这次是以 grep-edit-mode 的形式内置了 wgrep 的功能。

移除了minions,改用 (setopt mode-line-collapse-minor-modes t)

1 个赞

我個人還是很喜歡這個字符emoji的🥲

可惜Windows版的Emacs要支持native comp还是要手动复制文件

是的 打错了 想说的其实是 wgrep

这个确实还需要提升。不过在 Windows 想用好,还是离不开 msys2 的,自己安装下依赖吧。

你这是全隐了啊,flymake也不显示吗?。我是设置只隐藏部分不想在 mode-line 出现的 minor-mode。

(setopt mode-line-collapse-minor-modes
      '(abbrev-mode
        auto-dark-mode
        auto-revert-mode
        beacon-mode
        jinx-mode
        symbol-overlay-mode
        ws-butler-mode
        yas-minor-mode
        ))