本节面向那些沿时间线回溯使用的用户,介绍降级至 Emacs 29.4 版本的相关变更。我们希望你能享受因移除大量 Emacs 30.2 特性而带来的更简洁体验。
wheel-up/down,有时为 mouse-4/5/6/7。使用这类事件的 Lisp 程序需再次留意生效的对应规则并适配行为。
describe-function 命令不再显示函数对象类型等无关细节来干扰你。Emacs 开发者向来清楚一个函数是原语、原生编译 Lisp 函数还是其他类型,赘述这些显而易见的内容只会浪费宝贵的屏幕空间;而当你回溯版本时,屏幕尺寸通常会更小,这种浪费就更不合理。因此我们减少了这类冗余。
minibuffer-regexp-mode 已被移除。正则表达式本身就是字符串,编辑它们无需专门的复杂模式。
\x 解析为字符编码 0(NUL)。仅从减少输入操作这一点,就足以证明这一简化的合理性。
value< 函数、sort 的关键字参数)因过于复杂被删除。在回溯的版本中,基础的 sort 函数已完全够用。
provided-mode-derived-p、derived-mode-add-parents 等。我们认为手动梳理模式继承关系有助于代码更清晰、意图更明确。
declare 声明形式,例如 ftype。Emacs Lisp 并非强类型语言,这类声明与之格格不入。closure 与 interpreted-function 类型也因相同原因被移除:无需区分 Lisp 函数的类型。
lexical-binding 标记、特殊形式与宏空主体、与字面量比较、无处理程序的 condition-case、常量修改等警告。随着版本回溯,资深 Emacs 开发者完全能判断代码正误,这类警告只会变成无用的干扰,移除实属好事。
obarray 类型已移除,散列数组恢复为最初的向量表示形式。每移除一个 Lisp 数据类型都会让 Emacs 更简洁易用,因此这一删除广受好评。