GNU Emacs新闻——用户可见更改的历史。版权所有(C)2021-2024 Free Software Foundation,Inc。有关许可条件,请参见文件末尾。请将Emacs错误报告发送到bug-gnu-emacs@gnu.org'.如果可能,请使用“M-x report-emacs-bug”。此文件是关于Emacs版本29中的更改。有关GNU Emacs版本和发布日期的列表,请参阅文件HISTORY。请参阅文件NEWS.28、NEWS.27…、。。。,NEWS.18和NEWS.1-17用于更改在旧Emacs版本中。您可以通过调用“查看emacs新闻”将新闻缩小到特定版本使用前缀参数或键入“C-u C-h C-n”。 *Emacs中的变化29.3Emacs 29.3是一个紧急错误修复版本,旨在修复几个下面描述的安全漏洞。**任意Lisp代码不再作为打开Org模式的一部分进行评估。这是出于安全原因,以避免评估恶意Lisp代码。**新的缓冲区局部变量“unrusted-content”。当该值为非零时,Lisp程序应使用额外小心。**Gnus现在将内联MIME内容视为不可信。要恢复以前的不安全行为,“不可信内容”应该是在缓冲区中重置为零。**LaTeX预览现在默认对电子邮件附件禁用。要恢复以前的不安全行为,请设置变量将“org--latex-preview-when-risky”设置为非零值。**组织模式现在认为远程文件的内容不可信。通过调用“file-Remote-p”可以识别远程文件。 *Emacs中的安装更改29.2 *Emacs中的启动更改29.2**在GNU/Linux上,Emacs现在是“org-protocol”的默认应用程序。组织模式提供了一种快速捕获书签、注释和链接的方法使用“emacsclient”:emacsclient“组织-协议://store-link?url=url&title=title以前,用户必须手动配置GNU/Linux桌面在Emacs中打开“org-protocol”链接的环境。这些链接应该现在在Emacs中自动打开“emacsclient.desktop”文件安排Emacs作为“org-protocol”的默认应用程序URI方案。参见组织模式手册,信息节点“(组织)协议”更多详细信息。 *Emacs中的变化29.2这是一个没有新功能的bug修复版本。 *Emacs中专业模式和包的变化29.2**流浪汉***新的用户选项“trap-show-ad-hoc-proxys”。非空时,临时定义保留在远程文件名中显示快捷方式。 *Emacs中不兼容的Lisp更改29.2**如果BODY失败,“with-sqlite-transaction”将回滚更改。如果宏体发出错误信号,或提交结果事务失败后,现在将回滚更改。 *Emacs 29.1中的安装更改**现在可以通过配置请求提前进行本机编译。使用“--with-native-compilation=aot”请求所有Lisp文件在Emacs树中,应该提前进行本地编译。(这是在大多数机器上速度较慢。)Emacs 28.1中存在此功能,但不太容易请求。**Emacs可以使用tree-sitter解析库构建。此库以及每个库的单独语法库语言,为多个流行的编程语言和其他格式化文件。Emacs构建这个库提供了主要的模式,在本文的其他地方进行了描述文件,它基于tree-sitter的解析器。如果你有安装了tree-sitter库,配置脚本将自动将其包含在构建中;在配置时使用“--不带树保姆”禁用该功能。基于tree-sitter库的Emacs模式需要额外的每个模式的语法库。这些语法库提供具有特定语言词汇分析和解析功能,和独立于树保姆图书馆本身。如果你没有语法库某些Emacs主模式需要,而您的发行版没有提供作为一个可安装的包,您可以编译和安装这样的库你自己。可以从tree-sitter网站下载许多库:https://github.com/tree-sitter网站Emacs提供了一个用户命令“treesit-install-language-grammar”,它自动化了语法库的下载和构建过程。它提示输入语言,即语言语法VCS的URL存储库,然后使用安装的C/C++编译器构建库并安装它。您也可以手动执行此操作。在之后编译这样的库克隆其Git存储库,编译文件“scanner.c”“src”中的“parser.c”(有时称为“scanner.cc”和“parser.coc”)使用C或C++编译器的库源代码树的子目录,然后将这两个文件链接到一个名为“libtree-sitter-LANG.so”(MS-Windows上的“libtree-sitter-LANG.dll”,macOS上的“libtree-sitter-LANG.dylib”),其中LANG是Emacs专业所期望的语法支持的语言模式(例如,“c”表示“c-ts-mode”,“cpp”表示“c++-ts-mode”,“python”表示“python-ts-mode”等)。然后放置共享库您在相同的目录中构建了另一个共享目录Emacs使用的库,或您的“tree-sitter”子目录中的“user-emacs-directory”,或在变量中提到的目录中“树-额外加载路径”。您只需要安装您将使用的Emacs模式,因为Emacs仅在在中首次在某个缓冲区中打开相应模式Emacs会话。我们通常建议使用最新版本的语法库可以从他们的网站上获得,因为这些图书馆是固定的开发,偶尔添加功能并修复重要的错误遵循他们支持的编程语言的进步。**Emacs可以内置对访问SQLite数据库的支持。这使用了流行的sqlite3库,可以通过使用“configure”脚本的“--without-sqlite3”选项。**支持WebP图像格式。默认情况下,当libwebp库可用,并包括对WebP动画图像的支持。要禁用WebP支持,请使用“--without-WebP”配置标志。图像说明符现在可以使用“:type-webp”。**Emacs现在使用名称中的唯一指纹安装“.pdmp”文件。该文件通常使用类似于的文件名进行安装“…目录/libexec/emacs/29.1/x86_64-pc-linux-gnu/emacs-.pdmp”。如果需要固定文件名,可以将文件重命名为“emacs.pdmp”,emacs无论如何都会在启动时找到它。**X上的Emacs现在将XInput 2用于输入事件。如果您的X服务器有支持,并且您有XInput 2开发头文件已安装,Emacs将使用X输入扩展来处理输入。如果这导致了问题,您可以使用选项“--without-xinput2”禁用此支持。“(featurep“xinput2”)”可用于测试XInput 2的存在Lisp程序的支持。**Emacs现在可以选择使用Cairo XCB后端构建。使用“--with-cairo-xcb”选项配置Emacs以使用cairoXCB后端;默认情况下不使用它。此后端使Emacs在具有高延迟的X个连接上运行时速度略快,但目前已知Emacs反复关闭和打开时会崩溃同一终端的显示连接;这可能发生,因为例如,如果您在单个客户端帧,每次使用“C-x C-C”删除帧。**Emacs现在支持使用纯GTK构建。要使用此选项,请确保GTK 3(3.22.23或更高版本)和安装了Cairo开发文件,并使用选项“--with-pgtk”。与默认的X和GTK版本不同生成的Emacs二进制文件可以在任何底层窗口系统上运行由GDK支持,如Wayland和Broadway。我们建议您只有在运行其他窗口系统时才使用此配置GDK支持的X。在X上运行此配置是已知存在问题,例如不良的帧定位和键盘输入序列(如“C-;”)的各种问题“C-S-u”。在WSL上运行此命令也会出现问题。注意,与Emacs的X构建不同,PGTK构建不能自动切换到文本模式界面(因此模拟“-nw”),如果它无法确定默认显示;相反,它会抱怨和要求您使用显式的'-nw'选项调用它。**Emacs已移植到Haiku操作系统。配置过程应自动检测和构建海口。还有一个到海口的可选窗口系统端口可以通过使用选项“--with-be-app”配置Emacs来启用,这将需要Haiku Application Kit开发标题和C++编译器将出现在您的系统上。如果Emacs不是用构建的选项“--with-be-app”,生成的Emacs将仅在中运行文本模式终端。要启用Cairo支持,请确保Cairo和FreeType开发文件存在于您的系统中,并使用配置Emacs“--带be-cairo”。与X不同,没有可启用或禁用的编译时间选项双缓冲;它始终处于启用状态。要禁用它,请更改取而代之的是帧参数“抑制双缓冲”。**Emacs不再缩小日语词典的大小。构建Emacs包括生成日语词典,它是日语输入法使用。以前,构建包括一个步骤减少这本词典的词汇量。这个词汇表减少现在是可选的,默认情况下是关闭的。如果您需要Emacs构建以包含词汇表缩减,使用选项“--带有小的ja dic”。在Emacs源代码树中如果配置时没有该选项,则可以强制减少词汇表通过说make-C leim generate-ja-dic ja_dic_NO_REDUCTION_OPTION=“”删除“lisp/leim/ja-dic/ja-dic.el”后。**预加载文件的文档字符串不再位于“etc/DOC”中。相反,它们是根据需要从相应的“.elc”中获取的文件,就像所有未重新加载的文件一样。 *Emacs中的启动更改29.1**“--batch”和“--script”现在可以调整垃圾收集级别。这些开关现在将“gc-cons-percentage”设置为1.0(高于默认值为0.1)。这意味着批处理通常使用内存比以前多,但垃圾收集所用的时间更少。应该长时间运行的批处理作业应调整限制再次降低。**Emacs现在可以在可执行脚本中更容易地使用。如果使用启动可执行脚本#!/usr/bin/emacs-xEmacs将在不读取任何init文件的情况下启动(如使用“--quick”),然后将脚本文件的其余部分作为Emacs Lisp执行。什么时候到达脚本末尾时,Emacs将退出,退出代码为最终形式的值。**Emacs现在支持通过“--init-directory”设置“user-Emacs-directory”。使用“--init-directory”命令行选项设置“user-emacs-directory”。**Emacs现在有一个“--fingerprint”选项。这将输出一个标识当前Emacs构建的字符串,然后退出。**新吊钩“后卸式吊钩”。这是在Emacs启动过程结束时运行的,其目的是用于重新初始化通常在加载时间。**本机编译***新命令“native-compile-prune-cache”。此命令删除eln缓存的旧子目录(但不删除用于当前Emacs版本的)。请注意安装“*.eln”文件的系统目录(通常是“native-comp-elin-load-path”中的最后一个条目)不会被删除。***新功能“startup-redirect-eln-cache”。可以在init文件中调用此函数来更改Emacs存储生成的“*.eln”文件的用户特定目录通过本地编译Lisp包Emacs加载。默认值eln-cache目录不变:它是“eln-cach”子目录“user-emacs-directory”。 *Emacs中的不兼容更改29.1**image命令已更改密钥绑定。在以前的Emacs版本中,当点在图像上。在Emacs 29.1中,其他命令添加,这使得用户更有可能触发图像错误的命令。为了避免这种情况,所有图像命令都已移动到“i”前缀keymap,因此“+”现在是“i+”,“-”现在是‘i-’,‘r’现在是‘i’。此外,这些命令现在正在重复,例如,你可以通过说“irr”将图像旋转两次。**Emacs现在为X输入方法选择正确的编码系统。以前,Emacs会使用“locale-coding-system”进行输入方法,在某些情况下可能不正确,尤其是当输入方法选择回退到其他编码系统时。Emacs现在自动检测输入使用的编码系统方法,并使用该方法优先于的值解码输入“区域设置编码系统”。不幸的是,这意味着改变了用于解码X键盘输入的编码系统必须调整将“locale-coding-system”自定义为变量改为“x-input-code-system”。**书签不再包含加密文件的上下文。如果您正在访问加密文件,则不再设置书签在书签文件中包含该缓冲区的摘录。这是由新钩子“书签禁止上下文函数”实现,其中,包可以注册一个函数,该函数为文件返回非零不得添加此类摘录的姓名。**“show-paren-mode”现在在“特殊模式”缓冲区中被禁用。在Emacs 28.1之前的Emacs版本中,默认为“show-paren-mode”在Emacs 28.1中,所有缓冲区中的模式都已打开。Emacs 29.1,这在所有编辑相关中被更改为打开缓冲区,但不在从“特殊模式”继承的缓冲区中。外带回到Emacs 28.1中的工作原理,在您的init文件:(setopt show-paren-predicate t)**还原缓冲区时保留显式设置的只读状态。如果使用“C-x C-q”命令更改缓冲区,然后将其还原,Emacs将事先使用该文件用于确定缓冲区是否应为只读的权限位恢复缓冲区后。Emacs现在记住了在“C-x C-q”。**Gtk选择面不再用于区域。Gtk控制背景和前景色的组合由内部Emacs机械控制导致低对比度面部在常用默认设置中。Emacs现在在上使用相同的“区域”面Gtk和非Gtk设置。**当您按下“RET”时,“C-h f”和“C-h x”现在可能需要确认。如果微型缓冲区中的文本无法完成单个函数或命令,键入“RET”不会自动完成到最短候选人,但会要求确认。键入“TAB”将尽可能多地完成,另一个“TAB”将显示所有可能的完井。这允许您坚持使用函数名即使“帮助”似乎不知道它,也可以使用第二个“RET”。**Dired公司***“w”(“双拷贝-消杀”)改变了行为。如果标记了多个文件,则文件名包含空格和引号字符将被引用为“像这样”。***“d”命令现在更一致地跳过点文件。在以前的Emacs版本中,像“C-u 10 d”这样的命令会将“d”标记下十个文件,无论它们是否为点文件(即“.”和“..”)或否,同时用鼠标(在“transient-mark-mode”中),然后点击“d”将跳过点文件夹。现在这些功能等效。**关于“急切的宏观扩张失败”的警告现在是一个错误。**以前,所有帧都会注意启动时的X“reverseVideo”值。这意味着如果您在初始显示器,然后在显示器上打开一个没有任何明确的“reverseVideo”设置,也会引起注意。(此包括终端框架。)在Emacs 29中,“reverseVideo”X资源与所有其他X资源一样进行处理,并以每帧为基础进行设置。**“query-replace”中的“E”现在使用精确的大小写编辑替换。以前,此命令的作用与“e”相同。**“*Packages*”缓冲区中的“/a”现在由存档名称限制,而不是regexp。**现在设置目标列也会影响“'和''.以前,“C-x C-n”只影响“nextline”和“previousline”,但它现在也会影响“scroll-up-command”和“scrold-down-command-”。**我在“*Help*”和“*info*”中搜索,现在默认情况下使用字符加引号字符。这意味着如果缓冲区包含“foo”(左单引号)等。这些在某些字体中,引号字符看起来有些相似。要切换关闭此选项后,禁用新的“isearch-fold-quotes-mode”次要模式。**排序命令不再需要更改修改状态。在早期的Emacs版本中,像“sort-lines”这样的命令总是将缓冲修改状态更改为“已修改”,无论它们是否已更改缓冲区里有没有什么东西。这已更改:缓冲区仅当排序最终实际更改缓冲区的内容。**“string-lines”以不同的方式处理尾部换行。如果字符串以换行。**“TAB”和“'现已绑定到“按钮映射”中。这意味着,如果点位于按钮上,则“TAB”会将您带到next按钮,即使模式已将其绑定到其他内容。这个也意味着“outline-minor-mode”标题中按钮上的“TAB”将移动点而不是折叠轮廓。**“outline-minor-mode-cycle-map”现在是“outline-minor-mode”的父级。而不是使用“outline-minor-mode-cycle”添加文本属性“keymap”关于keymap中outline-minor-mode的大纲标题“outline-minor-mode-cycle”现在在整个缓冲区中处于活动状态。但“outline-minor-mode-cycle”中的键绑定仍然有效仅限于大纲标题,因为它们是在“outline-minor-mode-cycle--bind”检查点是否在标题上。**Emacs启动时不再填充“Info-default-directory-list”。如果您的init文件中有从“Info-default-directory-list”,这将不再有效。**“C-k”不再删除“ido-mode”中的文件。要返回上一个操作,请在中输入以下内容您的Init文件:(需要“ido”)(keymap-set ido-file-completion-map“C-k”#'ido-delete-file-at-head)**新的用户选项“term-clear-full-screen-programs”。默认情况下,term.el现在在显示时将像大多数终端一样工作全屏程序:当它们退出时,输出被清除,离开程序启动前窗口中显示的内容。设置此用户选项设置为nil以恢复到旧行为。**不再自动加载对旧EIEIO功能的支持。需要显式的“(require”eieio-compat“)”才能使用“defmethod”和“defgeneric”(在Emacs 25.1中被“cl-defmethod”和“cl-ddefgeneric”)。类似地,您可能需要在加载之前“(require”eieio-compat)”使用旧EIEIO编译的文件(Emacs<25)。**“C-x 8.”已移至“C-x 8.”。这是为了打开“C-x 8”映射以在那里绑定更多字符。**“C-x 8='已移至“C-x 8==”。现在可以使用“C-x 8=”插入带有宏的几个字符;例如,“C-x 8=a”将插入U+0101拉丁文小写字母a WITH马克龙。要插入一个单独的马克龙,请键入“C-x 8==”而不是前面的“C-x=”。**埃塞尔***Eshell的PATH现在派生自“exec-PATH”。为了与远程连接保持一致,Eshell现在使用“exec-path”来确定本地或远程系统上的执行路径直接使用PATH环境变量。***“source”和“.”不再接受“--help”选项。这是为了与这些命令的shell版本兼容,不以任何特殊方式处理“--help”之类的选项。***参数谓词/修饰符中的字符串分隔符受到更多限制。以前,一些参数谓词/修饰符允许任意字符作为字符串分隔符。提供更统一的行为在所有谓词/修饰符中,允许的分隔符列表有限制为“…”、“…”,/…/,|…|,(...), [...], <...>,和{…}。参见“(eshell)参数预测和修改”有关更多详细信息,请参阅Eshell手册中的节点。***Eshell管道现在默认情况下仅使用管道stdout。要对stdout和stderr进行管道传输,请使用“|&”运算符而不是“|”。**“delete-forward-char”命令现在通过字形簇删除。默认情况下,此命令绑定到“'功能键(又名“'). 在没有前缀参数或带有正前缀数字参数的命令现在将删除通过字符合成产生的完整的字形簇。对于例如,如果点位于表情符号序列之前,请按''将删除整个序列,而不仅仅是其中的一个字符开始。**“加载历史记录”不再专门处理自动加载。自动加载定义显示为“(defon.NAME)”不再生成“(t.NAME)”条目。**泰米尔语输入法不再插入泰米尔数字。输入方法“tamil-itrans”和“tamil-encippt”不再插入泰米尔语数字,因为这些数字字符现在不被使用说泰米尔语的人。要恢复以前的行为,使用新的“tamil-itrans-digits”和“tamil-encistpt-digits”输入方法。**控制默认时间戳形式的新变量“current-time-list”。像“current-time”这样的函数现在会产生“(TICKS.HZ)”时间戳,如果这个新变量是零。变量默认为t,这意味着这些函数默认为表单“(HI LO US PS)”的时间戳,“(HI-LO US)”或“(HI-LO)”,这两个词的规则性较差,效率也较低。这是Emacs 27中首次记录的长期计划变更的一部分。鼓励开发人员使用此测试与时间戳相关的代码变量设置为nil,因为它将在未来的Emacs中默认为nil版本,稍后将被删除。**重新创建“*scratch*”缓冲区的函数现在也对其进行初始化。当“other-buffer”和“server-execute”之类的函数重新创建时“*scratch*”,他们现在还插入“initial-scratch-message”并设置根据“initial-mahor-mode”的主模式,如Emacs启动。以前,这些函数被忽略“initial-scratch-message”,并在“fundamental-mode”中留下“scratch”。**图像定向缩略图文件的命名已更改。“image-dired-thumbnail-storage”时生成的缩略图文件的名称“image-dired”现在总是以“.jpg”结尾。这修复了各种问题但这意味着Emacs 28中生成的缩略图不会在Emacs 29和vice-versa中使用。如果磁盘空间是问题,考虑删除“image-dired-dir”目录(通常“~/.emacs.d/image-dired/”)。**URL库中的“rlogin”方法现已过时。如果您请求类似以下URL,Emacs将显示警告rlogin://foo@example.org”。**将“url-gateway-method”设置为“rlogin”现在已过时。Emacs现在将在将其设置为该值时显示警告。用户选项“url-gateway-rlogin-host”,“url网关rlogin参数”和“url网关rlogin用户名”也是过时的。**用户函数“url-irc-function”现在接受一个SCHEME参数。现在使用第六个参数调用用户选项“url-irc-function”对应于目标URL的方案部分。例如,对于类似“”的URL,这将是“ircs”ircs://irc.libera.chat".**linum.el库现在已经过时了。我们建议使用内置的“display-line-numbers-mode”,或改为GNU ELPA的“nlinum”包。前者更好性能,但后者更接近于替代品。1.要使用“display-line-numbers-mode”,请在您的初始化文件:(全局显示行号模式1);; 或者,仅在编程模式下使用:(add-hook“prog-mode-hook#”显示行编号模式)2.要使用“nlinum”,请将其添加到Init文件中:(package-install'nlinum)(全局-nlinum-mode 1);; 或者,仅在编程模式下使用:(add-hook“prog-mode-hook#”线性模式)3.要继续使用过时的包“linum”,请将此行添加到Init文件,以及任何现有自定义项:(需要亚麻)**thumbs.el库现已过时。我们建议改用“image-dired”命令。**autoarg.el库现在已标记为过时。此库提供次要的“autoarg mode”和“autoarg kp mode”模式来模拟历史编辑器Twenex Emacs的行为。我们认为它不再有用。**quickurl.el库现已过时。使用“缩写”、“骨架”或“节奏”。**rlogin.el库和“rsh”命令现已过时。使用类似“M-x shell RET ssh”的命令而是RET。**url-about.el库现在已经过时了。**autoload.el库现已过时。它被新的loaddefs-gen.el库取代。**netrc.el库现在已经过时了。在auth-source.el中使用“auth-souce-netrc-parse-all”函数而不是。**url-dired.el库现已过时。**已删除fast-lock.el和lazy-lock.el库。自Emacs 22.1版以来,它们已被淘汰。变量“font-lock-support-mode”有时用于调试目的。它现在是一个常规变量(而不是用户选项),可以设置为nil以禁用实时锁定模式。**“utf-8-auto”编码系统现在生成编码BOM。这实际上是一个错误修复,因为“utf-8-auto”就是这样从第一天开始记录;它只是没有按照文档。原来有些Lisp程序使用了这个编码系统错误地认为“auto”部分意味着自动魔术处理行尾(EOL)格式转换;那些程序现在将开始失败,因为BOM签名是UTF-8编码的很少需要文本。这就是我们提到这个错误修复的原因在这里。通常,此编码系统可能永远不应用于编码,仅用于解码。 *Emacs中的变化29.1**新的用户选项“major-mode-remap-alist”指定最喜欢的主模式。此用户选项允许您重新映射默认模式(例如“perl-mode”或“latex-mode”)到您最喜欢的模式(例如“cperl-mode”或“LaTeX模式”),而不必使用“defalias”,后者可以不良副作用。这适用于通过“auto-mode-alist”、file-local指定的所有模式变量等。**Emacs现在支持Unicode Standard版本15.0。**新用户选项“electric-quote-replace-consecutive”。这允许您禁用连续单个引号被替换为双引号。**Emacs现在能够编辑行数很长的文件。长线的显示已经过优化,Emacs不应该当显示器上的缓冲区包含长行时,阻塞会更长。这个变量“longline-threshold”控制是否以及何时显示这些优化正在生效。伴随变量“large-hsroll-threshold”控制另一个一组显示优化正在生效,其目标是特别是在加速显示被截断的长线时显示。如果编辑带有长行的文件时仍会遇到速度减慢的情况,这可能是由于行截断或启用的一个次要模式或当前主模式。尝试关闭行截断使用“C-x x t”,或尝试使用禁用所有已知的慢速次要模式“M-x so-long-minor-mode”,或尝试禁用两种已知的慢速次要模式使用“M-x so-long-mode”和主模式,或使用“M-x find-file-literally”而不是通常的“C-x C-f”。在这些显示优化生效的缓冲区中“字体功能”、“pre-command-hook”和“post-command-hook”钩子在缓冲区的缩小部分执行,其大小为由变量“长线优化-区域大小”和“长线优化-bol-search-limit”,就像他们在“不受限制”的形式。这可能特别会导致偶尔这些缓冲区中的不当行为。受以下因素影响的模式这些优化以及缓冲区缩小的事实,应该进行调整,或者修改其算法,以避免要访问的整个缓冲区,或者,如果访问的是缩小区域不会影响性能,请使用“无限制”表格暂时解除限制访问变窄区域之外的缓冲器的部分。这些优化在当前缓冲区中有效。**用于全局更改字体大小的新命令。要增加字体大小,请键入“C-x C-M-+”或“C-x C-M-=”;减少它,键入“C-x C-M---”;要恢复字体大小,请键入'C-xC-M-0’。这些命令中的最后一个键可以在没有前导“C-x”且不带修饰语,例如“C-x C-M-+C-M-+C-M-+”和“C-x C-M-+++”将字体大小增加三步。什么时候?“鼠标滚轮模式”已启用,“C-M-wheel-up”和“C-M-wheel-down”也已启用全局增大和减小字体大小。此外用户选项“global-text-scale-adjust-resizes-frames”控制是否当字体大小改变时,框架将被调整大小。**新的配置变量“syntax-wholeline-max”可以减少长行的成本。此变量用于某些操作(主要是语法属性化和font-locking)将比该变量长的行视为由各种较小的线条组成。这有助于减少在由单个长线组成的缓冲区中可以看到减速,但也可以在如此长的队伍面前引起不当行为(尽管大多数这种不当行为通常仅限于不当强调)。可以通过以下方式恢复以前的行为:(setq语法-wholeline-max-most-positive-fixnum)**“find-library”的“find-function-setup-keys”中的新绑定。启用“find-function-setup-keys”后,“C-x L”现在绑定到“find-library”、“C-x 4 L”现在绑定到“find-library-other-window”“C-x 5 L”现在绑定到“find-library-other-frame”。**“M-x”或“M-x”后的新密钥绑定:“M-x。”。Emacs允许不同的完成谓词与“M-x”一起使用(即“execute-extended-command”)通过“read-extended-command-predicate”用户选项。Emacs还拥有“M-X”(注意大写X)命令,仅显示命令与当前缓冲区特别相关。Emacs现在允许切换当用户通过点击输入命令时,在这些模式之间切换“M-X”在微型缓冲区中。**交互地,“kill-buffer”现在将提供保存未保存的缓冲区。**新命令“duplicate-line”和“dupliate-dwim”。“duplicate-line”按指定次数复制当前行。“duplicate-dwim”复制处于活动状态的区域。如果不是,它类似于“复制线”。活动矩形区域是右侧复制。新用户选项“duplicate-line-final-position”指定移动点的位置在复制一行之后。**扩展名为“.eld”的文件现在可以在“lisp-data-mode”中访问。**“network-lookup-address-info”现在可以检查数字IP地址的有效性。指定“numeric”作为新的可选HINTS参数检查传递的地址是否是有效的IPv4/IPv6地址(无DNS交通)。(network-lookup-address-info“127.1”“ipv4”数字)=> ([127 0 0 1 0])**新命令“find-sibling-file”。此命令跳转到一个被视为“同级文件”的文件,即根据新用户选项“find-sibling-rules”确定。**新用户选项“删除选择-临时区域”。当非空时,“delete-selection-mode”将只删除临时区域(通常通过鼠标拖动或shift选择进行设置)。**新的用户选项“switch-to-rev-buffer-skip-regexp”。这应该是regexp或regexp列表;名称为的缓冲区匹配这些regexp将被“switch-to-rev-buffer”忽略,并且“切换到下一个缓冲区”。**新命令“rename-visited-file”。此命令通过移动并使缓冲区访问这个新的文件。**菜单***现在可以更改“缓冲区”菜单中缓冲区后面的条目。更改“menu-bar-buffers-menu-command-entries”变量以更改缓冲区列表后面的条目。**“删除进程”现在是一个命令。当以交互方式调用时,它将终止在当前缓冲区(如果有)。如果你逃跑了,这会很有用当前缓冲区中的输出(来自进程或网络连接),想阻止它。**新命令“restar-emacs”。这就像“save-buffers-kill-emacs”,但不仅仅是杀死在当前Emacs进程结束时,它启动一个新的Emacs进程(使用与正在运行的Emacs进程相同的命令行参数)。“kill-emacs”和“save-buffers-kill-emas”也获得了新的重新启动的可选参数,而不仅仅是终止当前过程。**拖放***新的用户选项“mouse-drag-mode-line-buffer”。如果非空,拖动模式线的缓冲区名称部分将将缓冲区的关联文件拖动到其他程序。此选项是目前仅在X、Haiku和Nextstep(GNUstep或macOS)上可用。***新的用户选项“mouse-drag-and-drop-region-cross-program”。如果非空,此选项允许从Emacs拖动区域中的文本到另一个程序。***新的用户选项“鼠标拖放区域滚动边距”。如果非空,此选项允许在拖动文本时滚动窗口没有滚轮。***“mouse-drag-copy-region”的值现在可以是符号“non-empty”。这可以防止鼠标拖动手势将空字符串放在压井环。***新用户选项“dnd-indicate-insertion-point”和“dnd-scroll-margin”。这些选项允许在以下情况下调整点和滚动窗口从其他程序中拖动项目。***现在支持X Direct Save(XDS)协议。这意味着从程序中删除图像或文件链接,例如Firefox将不再在随机目录中创建临时文件,而是先询问您在哪里保存文件。**新的用户选项“record-all-keys”。如果非空,此选项将强制记录所有输入键,包括响应密码提示键入的内容(这是之前的行为)。默认值为零,禁止录制密码。**新功能“command-query”。此函数使其参数命令提示用户执行前确认。**命令符号的“disabled”属性现在可以是列表。列表的第一个元素应该是符号“query”,它将这样会导致命令被禁用,并用y/n或a提示用户执行之前的是/否问题。新函数“command-query”是以这种方式禁用命令的一种方便方法。**如果给定前缀,“count-words”现在将报告缓冲区总数。如果没有前缀,它将只报告缩小范围的单词数缓冲区的一部分。**“count-words”现在将在交互使用时报告句子计数。**新用户选项“set-message-functions”。它允许更灵活地控制回声区域消息的显示方式通过将函数添加到此列表。默认值是一个列表元素:“set-minibuffer-message”,显示echo-area消息当微缓冲区处于活动状态时,在微缓冲区文本的末尾。其他有用的功能包括“禁止消息”,它允许通过“inhibit-message-regexps”指定应禁止显示;和积累的“set-multi-message”最近的消息,并将它们堆叠在一起显示。**新的用户选项“find-library-include-other-files”。如果设置为nil,像“find-library”这样的命令将只包含库完成候选人中的文件。默认值为t,它保留之前的行为,其中还可以包括非库文件。**用于检查sqlite3文件的新命令“sqlite-mode-open-file”。这使用了新的“sqlite-mode”,它允许在DB文件,并检查和修改的列和内容那些桌子。**“write-file”现在将复制一些文件模式位。如果当前缓冲区正在访问可执行文件,则“C-x C-w”命令现在也将使新文件可执行。**新用户选项“进程错误暂停时间”。这决定了进程结束后Emacs暂停的时间已处理筛选器/sentinel错误。**字体锁定的新面孔。这些脸主要用于树木保姆。他们是:'font-lock-brack-face','font-llock-delimiter-face','font-lock-escape-face','font-llock-function-call-face',“font-lock-misc-pexilation-face”,“font-llock-number-face”,'字体锁定运算符face','字体锁定属性名称face',“font-lock-property-use-face”,“font-llock-punction-face”,“font-lock-regexp-face”和“font-llock-variable-use-face”。**新面孔“variable-pitch-text”。这张脸就像是“variable-pitch”(它从中继承),但稍大一些,这有助于消除视觉尺寸差异在默认的非比例字体和比例字体之间混合的。**新面孔“mode-line-active”。这继承了“modeline”面,但实际使用的是该面在模式线上(以及“mode-line-in-active”)。**新的面属性伪值“reset”。该值代表“默认”面。它可用于重置由从其他面继承。**新的X资源“borderThickness”。这将控制菜单栏外部边框的厚度和弹出菜单。**新的X资源“inputStyle”。这控制X输入的预编辑和状态区域的样式方法。**新的X资源“highlightForeground”和“highlichtBackground”。仅在Lucid版本中,此控件用于高亮显示的颜色菜单项小部件。**在X上,Emacs现在尝试将窗口大小调整与窗口管理器同步。这样可以减少闪烁和显示帧的空白区域调整帧大小时。不幸的是,它对一些老式的窗口管理器,所以如果Emacs看起来冻结了,但是仍然对输入作出响应,您可以通过设置X将其关闭资源“synchronizeResize”设置为“off”。**在X上,Emacs可以选择将显示与图形硬件同步。通过将X资源“synchronizeResize”设置为“扩展”,帧内容“撕裂”大大减少。这是仅支持Motif、Lucid和no-toolkit版本,以及需要支持扩展帧的X合成管理器同步协议(请参阅https://fishsoup.net/misc/wm-speci-synchronization.html).可以通过帧参数打开和关闭此行为“使用帧同步”。**新的帧参数“alpha-background”和X资源“alphaBackground”。它控制在复合显示。**新的帧参数“shaded”。通过支持此功能的窗口管理器,它可以控制框架的内容将被隐藏,只显示标题栏。**新用户选项“x-gtk-use-native-input”。这控制Emacs是否使用GTK输入方法,而不是XIM输入方法。默认为零。**新的用户选项“use-system-tooltips”。这控制是使用工具箱工具提示,还是使用Emacs自己的工具提示工具提示作为小框架的本机实现。此选项是只有使用GTK+、Nextstep或Haiku构建Emacs时才有意义支持,默认为t,这使得Emacs使用该工具包工具提示。现有GTK特定选项“x-gtk-use-system-tooltips”现在是此新选项的别名。**Nextstep现在支持非本机工具提示。这意味着使用GNUstep或macOS构建的Emacs现在能够“use-system-tooltips”用户选项为零。**新的次要模式“像素-滚动-分辨率-模式”。启用后,如果鼠标支持,可以滚动以像素分辨率向上或向下显示,取决于您的鼠标车轮报告。与“像素-滚动模式”不同,此模式滚动逐像素显示,而不是仅逐行设置动画卷轴。**终端Emacs***Emacs现在将在支持“Tc”功能的终端上使用24位颜色。这是对以前支持的发现24位的方法的补充颜色支持:通过“RGB”或“setf24”功能,或如果“COLORTERM”环境变量设置为值“truecolor”。***使用xterm选择支持选择活动区域。在支持xterm“setSelection”的终端上,活动区域可以是保存到X主选择,按照“select-active-regions”变量。此支持在以下情况下启用“tty-select-active-regions”为非零。***设置不支持字符显示的新命令。新命令“standard-display-by-replacement-char”生成Lisp设置“标准显示表”以使用替换的代码文本模式终端显示字符的字符不支持。此代码用于init文件。此功能对于Linux控制台和类似的终端,Emacs可以可靠地确定字符的字形加载到终端的内存中。***用于设置终端输出缓冲区大小的新功能。新函数“tty--set-output-buffer-size”和“tty--output-buffer-size”允许设置和检索输出终端设备的缓冲区大小。默认缓冲区大小为,并且具有始终是BUFSIZ,这是在系统的stdio.h中定义的。当使用“tty--set-output-buffer-size”设置缓冲区大小,这也防止Emacs显式刷新tty输出流,除非显示更新结束时。**应急响应小组***新ERT变量“ERT-batch-print-length”和“ERT-batach-printlevel”。打印ERT批测试结果中的Lisp值。***在批处理模式下重新定义ERT测试现在表示错误。使用与现有测试相同的名称执行“ert-deftest”会导致之前的定义将被丢弃,而这可能不是在批处理模式下发生此情况时。要纠正错误,请重命名测试,以便它们都有唯一的名称。***ERT可以生成JUnit测试报告。设置环境变量“EMACS_TEST_JUNIT_REPORT”时,ERT在此文件名下生成JUnit测试报告。这很有用用于Emacs集成到CI/CD测试环境中。***未绑定测试符号现在表示“ert-test-Unbound”错误。这会影响“ert select tests”函数及其调用方。**表情符号***Emacs现在有几种插入Emoji的新方法。表情符号命令位于新的“C-x 8 e”前缀下。***新命令“emoji-insert”(绑定到“C-x 8 e e”和“C-x 8e i”)。此命令引导您浏览各种表情符号类别和图形菜单系统中的组合。***新命令“emoji-search”(绑定到“C-x 8 e s”)。此命令允许您根据名称搜索和插入表情符号。***新命令“emoji-list”(绑定到“C-x 8 e l”)。此命令在特殊的缓冲区,并允许您选择其中一个进行插入。***新命令“emoji-recent”(绑定到“C-x 8 e r”)。此命令允许您在最近使用的表情符号中进行选择插入并插入。***新命令“emoji-descripte”(绑定到“C-x 8 e d”)。此命令将告诉您此处的表情符号名称。(它还适用于非表情符号。)***新命令“emoji-zoom-increase”和“emoji-zoom-decrease“。它们分别绑定到“C-x 8 e+”和“C-x 8e-”。他们可以用于任何字符,但主要用于表情符号。***新命令“emoji-zoom-reset”。这将绑定到“C-x 8 e 0”,并撤消由执行的任何大小更改“emoji-zoom-increase”和“emoji-zoom-decrease)”。***新的输入法“emoji”。这允许您使用短字符串输入表情符号,例如“:face_palm:”或“:尖叫:”。**帮助***“*Help*”中“C-h v”显示的变量值现在已被字体化。***新用户选项“help-clean-buttons”。如果非空,“*Help*”缓冲区中的链接按钮将具有任何周围引号已删除。***“M-x apropos-variable”输出现在包括变量值。这样一个恰当的缓冲区更容易通过以下方式查看在“apropos-mode”中启用“outline-minor-mode”。***新的docstring语法指示符号不应该是链接。在“*Help*”缓冲区中显示文档字符串时“like-this”被做成链接(如果它们指向一个绑定函数/变量)。这可能导致谈话时出现误报关于恰好与具有相同名称的符号的值函数/变量。要禁止此按钮化,请使用新的“\\+`like-this'”语法。***新用户选项“help-window-keep-selected”。如果非空,则显示信息手册和源的命令将重用显示“*Help*”缓冲区的同一窗口。***像“C-h f”这样的命令改变了它们描述菜单绑定的方式。例如,以前的命令可能被描述为具有以下绑定:它一定会,C-x C-f, .已更改为:它一定会和C-x C-f。也可以从菜单调用:文件访问新文件。。。***“C-h”命令现在接受前缀参数。“C-u C-h。”以前会禁止显示警告消息,如果当时没有当地帮助。此已更改为呼叫“button-description”/“widget-descripte”和显示按钮/小部件帮助而不是。***新的用户选项“help-enable-variable-value-editing”。如果启用,“*Help*”中的值上的“e”将弹出到新的缓冲区您可以在其中编辑值。默认情况下不启用此功能,因为进行编辑很容易导致无效结果。***“C-h b”默认使用大纲。将“describe-bindings-outline”设置为nil以恢复旧行为。***跳转到函数/变量源现在可以在移动点之前保存标记。当源从“*Help*”缓冲区跳转到源时,会移动点缓冲区已打开。现在,旧的点被推到标记环上。***“*Help*”缓冲区中的新键绑定:“n”和“p”。这些将(分别)带您进入下一个和上一个“页面”。***“describe-char”现在还输出表情符号序列的名称。***“*Help*”缓冲区中的新键绑定:“I”。这将带您进入Emacs Lisp手动条目显示(如果有)。***“C-h m”(“描述模式”)“*帮助*”缓冲区已重新格式化。它现在只包括开始时的本地次要模式,以及全局次要模式列在主要模式之后。***用户选项“help-window-select”现在影响apropos命令。如果满足以下条件,apropos命令现在将选择apropos窗口“help-window-select”为非零。***“description keymap”现在考虑了点上的符号。如果点上的符号是keymap,则“describe-keymap”表示为默认候选项。***新命令“help-quick”显示常见命令的概述。该命令在屏幕底部弹出一个缓冲区各种任务的有用命令。您可以使用切换显示“C-h C-q”。**Emacs现在带有Org v9.6。有关组织中用户可见的更改,请参阅文件“etc/ORG-NEWS”。**大纲模式***支持自定义标题的默认可见性状态。自定义用户选项“outline-default-state”以定义打开“大纲”模式后,标题最初将可见。当值为数字时,用户选项“outline-default-rules”确定从相应的级别。提供值以控制标题子树的显示取决于标题是否与正则表达式匹配,或者取决于子树有很长的行或其本身太长。**大纲次要模式***新的用户选项“outline-minor-mode-use-buttons”。如果非空,大纲次要模式将使用按钮隐藏/显示大纲除了省略号。默认值为nil,但在“help-mode”中它的值为“insert”,可以将按钮直接插入缓冲区,您可以使用“RET”来循环大纲可见性。什么时候?值为“in-marigins”,大纲次要模式使用窗口边距用于隐藏/显示轮廓的按钮。***按钮和标题现在有了自己的关键图。“outline-button-icon-map”、“outline-overlay-button-map”和“outline-inserted-button-map”现在可以作为定义的keymaps使用而不是匿名的keymaps。**Windows(窗口)***新命令“split-root-window-below”和“split-root-windows-right”。这些命令将根窗口分成两部分,并绑定到“C-x w 2”和“C-x w 3”。许多其他有用的窗口相关命令现在可用于以前缀为“C-x w”。***新的显示动作“display-buffer-full-frame”。当显示该帧上的缓冲区。***“display-buffer”现在可以设置所选窗口的主体大小。例如,的“display-buffer-alist”条目(窗宽(车身-立柱.40))将使所选窗口的主体宽40列。对于高度分别使用“窗高”和“车身线条”。***“display-buffer”为使用现有窗口提供了更多选项。显示缓冲区操作功能“display-buffer-use-some-window”和“display-buffer-use-least-recent-window”现在向行动主义者致敬条目“window-min-height”以及下面列出的条目一行中几个缓冲区的显示更容易接受。***新的缓冲区显示动作列表条目“lru-frames”。这允许指定“显示缓冲区”应考虑的帧当使用显示另一个缓冲区的窗口时。它被解释为根据“get-lru-window”的ALL-FRAMES参数。***新的缓冲区显示操作列表条目“lru-time”。“display-buffer”将忽略使用时间高于此值的窗口当使用显示另一个缓冲区的窗口时。***新的缓冲区显示动作列表条目“bump-use-time”。这使“display-buffer”颠簸了它返回的任何窗口的使用时间,使其不太可能显示另一个缓冲区。***新的缓冲区显示操作列表条目“窗口最小宽度”。这允许指定用于显示缓冲区。***您可以指定“scroll-other-window”操作的窗口。这由新的“other-window-scroll-default”变量控制,应该设置为返回窗口的函数。当这个变量为nil,使用“next-window”。**框架***删除的帧现在可以取消删除。在以下情况下,可以使用“C-x 5 u”恢复最近删除的16个帧“取消帧模式”已启用。如果没有前缀参数,则取消删除最近删除的帧。带有数字前缀参数介于1和16之间,其中1是最近删除的帧,取消删除相应的删除帧。***变量“icon-title-format”现在可以具有值t。该值意味着对图标化的帧使用“帧-格式”。这对一些窗口管理器和桌面环境很有用它将帧标题的更改视为提升帧的请求和/或给它输入焦点,或者如果您希望框架的标题是无论框架是否图标化,都是相同的。**标签栏和标签行***新的用户选项“tab-bar-auto-width”可自动确定选项卡宽度。默认情况下,此选项为非零,它会调整选项卡式选项卡的大小,以便它们的宽度均匀分布在选项卡栏上。一个同伴选项“tab-bar-auto-width-max”控制选项卡的最大宽度在显示的名称被截断之前。***当提供的选项卡名称不存在时,“C-x t RET”将创建一个新的选项卡。它提示输入选项卡的名称并切换到该选项卡,创建一个新的选项卡,如果不存在同名选项卡。***新的keymap“tab-bar-history-mode-map”。默认情况下,它包含“C-C‘和’C-C'浏览选项卡窗口配置的历史记录。**更好地检测显示中可疑的重新排序的文本。扩展了“双向覆盖方向性”功能检测嵌入和隔离产生的重新排序效应(由RLO和LRI)。新命令“highlight-commissing-reorderings”发现并突出显示重排序显示的缓冲区文本段可疑且可能是恶意的。**Emacs服务器和客户端***emacsclient的新命令行选项“-r”/“--reuse-frame”。使用此命令行选项,Emacs重用现有的图形客户端框架(如果有);否则会创建一个新帧。***emacsclient的新命令行选项“-w N”/“--timeout=N”。使用此命令行选项,如果Emacs没有退出,emacsclient将退出N秒内响应。默认情况是永远等待。***“server-stop-automatically”可用于自动停止服务器。在某些情况下,Emacs服务器将自动停止满足。条件由参数决定“server-stop-automatically”,可以是“empty”、“delete-frame”或“kill-terminal”。**循环***新命令“rcirc-when”。这显示消息在点的接收时间(如果可用)。***新用户选项“rcirc-cycle-completion-flag”。Rcirc现在使用默认的“completion-at-point”机制。这个通过循环完成的常规IRC行为启用此选项可以恢复可用选项。***新的用户选项“rcirc桥接机器人列表”。如果你在一个机器人负责桥接的通道中在网络之间,可以使用此变量生成这些消息看起来更土气。例如,您可以将选项设置为:(setopt rcirc-bridge-bot-alist'((“桥”.“{\\(.+?\\)}[[:空格:]]+”))用于以下消息09:47{john}我不在IRC上要重新格式化为09:47我不在IRC上***新格式命令。大多数IRC客户端(包括rcirc)支持使用控制代码。在“C-C C-f”前缀下有几个命令添加以自动插入这些。例如,如果区域是激活并调用“C-C C-f C-b”,则为区域插入标记以粗体突出显示。**伊梅努***“imenu”现在在全球范围内绑定到“M-g i”。***新函数“imenu-flush-cache”。如果你想让Imenu忘记缓冲区的索引列表和下次调用“imenu”时重新创建它。**Emacs现在能够放弃耗时过长的窗口重新显示。这由新变量“max-redisplay-ticks”控制。如果那样的话变量设置为非零值时,窗口的显示将为在多次低级重新显示操作后中止,因此防止Emacs在访问带有长长的队伍。默认值为零,这将禁用以下功能:Emacs将永远等待重播结束。(我们相信您不需要这个特性,提供了显示很长缓冲区的能力行。) *编辑Emacs 29.1中的更改**“M-SPC”现在绑定到“循环间隔”。以前它调用“仅限一个空间”。执行的操作“循环间隔”及其顺序现在可以通过用户自定义选项“cycle-spacing-actions”。**“zap-to-char”和“zap-up-to-char”对大写字符区分大小写。现在,当无论值是多少,它们都是用大写字符调用的“案例-搜索”。**“scroll-other-window”和“scrolk-other-windown”现在支持重新映射。这些命令(绑定到“C-M-v”和“C-M-v”)用于滚动其他命令窗口,而不查看其他窗口中的自定义设置。这些函数现在检查它们是否已在所示的缓冲区中反弹然后调用重新映射函数。此外,这些命令现在也尊重“scroll-error-top-bottom”用户选项。**“cl-flet”和“cl-labels”的缩进已更改。这些表单现在缩进如下:(cl-flet((bla(x))(*x x))(bla 42))此更改还影响“cl-macrolet”、“cl-flet*”和“cl-symbol-macrolet”。**新的用户选项“translate-upper-case-key-bindings”。将此选项设置为nil以禁止上限的默认转换小写变体的大小写键。**新命令“确保空行”。此命令增加(或减少)之前的空行数点。**通过自动滚动模式改进了鼠标行为。在“滚动边缘”或“hscroll-margin”区域内单击时,现在,仅当释放鼠标按钮时才移动点。这个没有更长时间会导致虚假选择,除非鼠标也拖。**“kill-ring-max”现在默认为120。**新用户选项“yank-menu-max-items”。自定义此选项以限制菜单中的条目数“编辑从杀死菜单粘贴”。默认值为60。**新的用户选项“copy-region-blink-predicate”。默认情况下,使用“kill-ring-save”复制区域时,仅Emacs当区域未直观表示时,闪烁点和标记即,当区域处于非活动状态或“区域”面处于无法与“默认”面区分。希望无条件启用闪烁的用户现在可以设置将此用户选项设置为“始终”。要无条件禁用闪烁,将此选项设置为“忽略”,或设置为“复制区域闪烁延迟”到0。**现在在触摸板上执行捏手势会增加文本比例。**显示Paren模式***新的用户选项“show-paren-context-when-of-offscreen”。非空时,如果点位于结束分隔符和开始分隔符中分隔符在屏幕外,显示了开口周围的一些上下文回声区域中的分隔符。默认值为零。此选项也可以设置为符号“overlay”或“child-frame”,在这种情况下,上下文显示在当前窗口的左上角。后一个选项需要图形框架。在非图形框架上,上下文显示在回波区域。**Comin公司***“comint-term-environment”现在可以识别连接局部变量。用户选项“comint-terminfo-terminal”和变量现在可以将“system-uses-terminfo”设置为连接局部变量更改远程主机上使用的终端。***新用户选项“comint-delete-old-input”。当为nil时,这可以防止comint在以下情况下删除当前输入使用'插入上一个输入”。默认值为t,to保留以前的行为。***新的次要模式“comint-fontify-input-mode”。默认情况下,在“*shell*”和“*ielm*”中启用此次要模式缓冲区。它根据“shell-mode”或“emacs-lisp-mode”字体锁定规则。自定义用户选项如果将“shell-fontify-input-enable”和“ielm-fontify-input enable”设置为nil默认情况下,您不想启用输入字体。**M车轮***备用车轮事件的新用户选项。用户选项“鼠标滚轮向下交替事件”和“mouse-wheel-up-alternate-event”以及变量“鼠标滚轮-左-备用-事件”和添加了“鼠标滚轮-右交替-事件”以提供更好的支持可以接收两种车轮事件的系统。**国际化***“'功能键现在允许删除整个合成序列。有关详细信息,请参阅有关“delete-forward-char”命令的项以上。***新的用户选项“composition-break-at-point”。将其设置为非零值会暂时禁用自动在点上合成字符序列,因此更容易通过允许点“输入”合成的序列。***支持许多旧的脚本和书写系统。Emacs现在支持并具有语言环境和输入方法,用于过去用于各种语言。对于每个这样的脚本,Emacs现在都有字体选择和字符组合规则、语言环境和输入方法。新添加的脚本和相应的语言环境包括:泰坦文字与泰北语言环境婆罗门文字与语言环境凯蒂文字和语言环境Tirhuta脚本和语言环境Sharada脚本和语言环境悉达姆脚本和语言环境Syloti Nagri脚本和语言环境Modi脚本和语言环境Baybayin脚本和Tagalog语言环境Hanunoo脚本和语言环境布希德文字和语言环境塔班瓦文字和语言环境林布文和语言环境巴厘岛文字和语言环境爪哇文字和语言环境巽他语脚本和语言环境巴塔克语脚本和语言环境Rejang脚本和语言环境Makasar脚本和语言环境Lontara脚本和语言环境哈尼菲罗兴亚文字和语言环境Grantha脚本和语言环境卡罗须提文和语言环境Lepcha脚本和语言环境曼尼普尔文脚本和语言环境Adlam脚本和语言环境Mende Kikakui脚本和语言环境Wancho脚本和语言环境Toto脚本和语言环境哥特式文字与语言环境科普特文字和语言环境蒙古族传统文字与语言环境蒙古语环境***“奥里亚”语言环境被重命名为“奥迪亚”。这是为了遵循脚本官方名称的更改。这个“oriya”输入法也被重命名为“oda”。然而,旧的语言环境的名称和输入方法仍然是支持。***Emacs教程的新希腊语翻译。键入“C-u C-h t”以选择它,以防您的语言设置无法完成所以是自动的。***Emacs教程的新乌克兰翻译。***Emacs教程的新波斯语/波斯语翻译。***泰米尔语言环境的新默认语音输入方法。泰米尔语环境的默认输入方法现在是“塔米尔拼音”是一种可自定义的拼音输入法。收件人更改输入方法的转换规则,自定义用户选项“tamil-translation-rules”。***泰米尔语的新“tamil99”输入法。这支持专门为泰米尔人设计的键盘布局语言。***新的输入法“slovak-qwerty”。这是“slovak”输入法的变体,对应于QWERTY斯洛伐克键盘。***新的输入法“cyrillic chuvash”。该输入法以俄罗斯计算机输入法为基础用于用西里尔文写的查瓦什语打字脚本。***新的输入法“西里尔文-蒙古利安”。此输入方法用于使用西里尔文字。它是新的蒙古语环境,见上文。 *Emacs中专业模式和包的变化29.1**Ecomplete公司***新命令“ecomplete-edit”和“ecomcomplete-remove”。这些允许您(分别)编辑和批量删除完整的数据库。***新用户选项“ecomplete-auto-select”。如果非零且只有一个匹配选项,则自动选择该选项。***新的用户选项“电子完整过滤器正则表达式”。如果非空,则此用户选项描述不添加到数据库存储在磁盘上。**身份验证源***新用户选项“auth-source-pass-extra-query-keywords”。是否识别其他关键字参数,如“:max”和“:require”,以及接受与匹配的查询词列表适用的关键字。这将禁用最常见的行为怪癖auth-source-pass独有,例如通配符子域匹配。**Dired公司***“dired-guess-shell-command”已从dired-x移动到dired。这意味着“dired-do-shell-command”现在将提供更智能的默认设置,而无需首先要求“dired-x”。查看节点有关更多详细信息,请参阅emacs手册中的“(emacs)Shell命令猜测”。***“dired-clean-up-buffers-too”已从dired-x移动到dired。这意味着Dired现在提供了终止访问文件和在Dired中删除目录时的目录。以前,你必须要求“dired-x”以启用此行为。要禁用此行为,将用户选项“dired clean up buffers too”自定义为零。这个相关用户选项“dired-clean-confirm-killing-deleted-buffers”(请参阅)也已移至“dired”。***“dired-do-relsymlink”已从dired-x移动到dired。相应的键“Y”现在默认绑定在Dired中。***“dired-do-relsymlink-regexp”已从dired-x移动到dired。相应的键序列“%Y”现在在Dired中默认绑定。***“M-G”现在绑定到“dired-goto-subdir”。以前,只有当dired-x包加载。***“dired-info”和“dired-man”从dired-x移动到dired。“dired-info”和“dired-man”命令已从dired-x包到dired。它们也被重命名为“dired-do-info”和“dired-do-man”;旧的命令名已过时别名。密钥“I”(“dired-do-info”)和“N”(“dired-do-man”)现已绑定默认情况下处于定向模式。用户选项“dired-bind-man”和“dired-bind-info”不再有效,已过时。要恢复旧行为并在Dired模式下解除这些键的绑定,请添加将以下内容添加到Init文件中:(带有“以后加载”指令(keymap-set direcd-mode-map“N”nil)(keymap-set direcd-mode-map“I”nil)***新命令“dired-do-eww”。此命令使用EWW访问当前行上的文件。***“browse-url-of-dired-file”现在可以调用辅助浏览器。当使用前缀arg调用时,现在将调用“浏览url辅助浏览器功能”而不是默认功能浏览器。'在中,browse-url-of-dired-file默认绑定到“W”dired模式。***新用户选项“dired-omit-lines”。这由“dired-omit-mode”使用,现在允许您根据除了文件名之外的其他内容。***新的用户选项“dired-mouse-drag-files”。如果不是nil,则在Dired缓冲区中用鼠标拖动文件名将启动拖放会话,允许在其他程序。***新用户选项“dired-free-space”。默认情况下,Dired现在将在第一行中包含可用空间而不是把它放在一条单独的线上。获取上一行为回来,说:(setopt dired-free-space单独)***新用户选项“dired-make-directory-clickable”。如果非零值(默认值),则点击“RET”或“mouse-1”目录开头显示的目录中的目录组件缓冲区会将您带到该目录。***在Dired/Wdired中搜索和替换支持更多regexp。例如,正则表达式“.*”将只匹配作为部分的字符文件名的。也可以使用“^.*$”在开头进行匹配文件名的末尾。这仅用于搜索文件名时。在Wdired中,当新用户选项“wdired-search-replace-filenames”为非零(即默认设置)。**埃利斯普***新命令“elisp-eval-region-or-buffer”(绑定到“C-C C-e”)。此命令评估活动区域或整个缓冲区中的表单。***新命令“elisp-byte-compile-file”和“elisp-byte-compile-buffer”。这些命令(分别绑定到“C-C C-f”和“C-C C-b”)分别对访问的文件和当前缓冲区进行字节编译。**游戏***新用户选项“tetris-allow-repetitions”。这控制了随机性的实现方式(是否使用纯如前所述的随机性,或使用袋子)。**蓄电池***新的用户选项“电池更新功能”。这可用于根据电池状态触发操作。**文档视图***doc-view现在可以在查看PDF文件时生成SVG图像。如果Emacs是使用SVG支持构建的,那么doc-view可以生成SVG文件当使用MuPDF作为PDF文件的转换器时,这通常会导致以获得更清晰的图像(尤其是缩放时),并允许自定义通过新用户显示页面的背景色和前景色选项“doc-view-svg-background”和“doc-view-svg-foreground”。收件人激活此行为,如果您的Emacs支持SVG。请注意,对于某些版本的MuPDF,众所周知,SVG生成有时会生成有缺陷的SVG文件或者渲染可能需要很长时间。**强化模式***新命令“enriched-toggle-markup”。这允许您查看“丰富模式”缓冲区中的标记(例如。,“HELLO”文件)。默认情况下绑定到“M-o M”。**外壳脚本模式***新用户选项“sh-indent-statement-after-and.”。这将控制以下语句的缩进方式:foo公司&&酒吧***使用ShellCheck程序的新Flymake后端。默认情况下启用,但需要外部“shellcheck”命令已安装。**CC模式***C++模式现在支持C++20标准中的大多数新功能。***在Objective-C模式中,默认情况下不识别任何额外类型。“objc-font-lock-extra-types”的默认值已更改为零,因为太多标识符被错误地证明为类型。这可能会导致某些实际类型无法进行字体化。为了得到老人返回行为,将用户选项自定义为其文档字符串。**Cperl模式***新用户选项“cperl-file-style”。此选项确定要使用的缩进样式。它还可以用作file-local变量。**古德***“gud-go”现在绑定到“C-C C-v”。如果给定前缀,它将提示为run/content命令。***“perldb”现在可以识别“-E”。从Perl 5.10开始,“Perl-E 0”的行为类似于“Perl-E 0”,但也会激活正在使用的Perl版本的所有可选功能。”perldb现在使用此调用作为其默认调用。**自定义***新命令“custom-toggle-hide-all-widgets”。它绑定到“H”并切换是隐藏还是显示小部件内容。**差异模式***新用户选项“diff-whitespace-style”。在中设置缓冲区局部变量“whitespace-style”的值“diff-mode”缓冲区。默认情况下,此变量为“(面拖尾)”,它保留了以前Emacs版本的行为。***新的用户选项“diff-add-log-use-relative-names”。如果非空,请在ChangeLog骨架中插入相对于VC根目录。**伊斯佩尔***“ispell-region”和“ispell-buffer”现在达到了目标。这些命令将最后一个的位置推到标记环上提供更正的拼写错误的单词,以便您可以用“C-x C-x”跳回到那个位置。**达布雷夫***用于“completion-at-point-functions”的新函数“dabbrev-capf”。***新的用户选项“dabbrev-ignored-buffer-modes”。此列表中具有主要模式的缓冲区将被忽略。默认情况下,这包括“二进制”缓冲区,如“存档模式”和“图像模式”。**包装***新命令“package-upgrade”。此命令允许您在不使用“列出程序包”的情况下升级程序包。Emacs发行版附带的包只能升级在您通过“list-packages”显示的package菜单。***新命令“package-upgrade-all”。此命令允许升级所有包,而无需任何查询。Emacs发行版附带的包只会升级安装一次更新版本的通过“列出包裹”显示的包裹菜单从ELPA获取包裹。***新命令“package-recompile”和“packag-recompile-all”。如果“.elc”文件过期,这些命令可能很有用(无效的字节代码和宏)。***“*Packages*”缓冲区中“x”上的新DWIM操作。如果没有标记包,则“x”将在以下情况下安装包它还没有安装,如果已经安装,请将其删除。自定义新的选项“package-menu-use-current-if-no-marks”设置为nil值以获取支持在这种情况下发出错误信号的旧行为。***新命令“package-vc-install”。现在可以通过克隆直接从源安装包他们的存储库。***新命令“package vc install from checkout”。通过创建一个从常用包目录到签出的符号链接。***新命令“package-vc-checkout”。用于通过克隆存储库获取包的源,而不需要激活包。***新命令“package-vc-prepare-patch”。此命令允许您向包维护者发送补丁,用于使用“package-vc-install”签出包。***新命令“package-report-bug”。此命令帮助您撰写电子邮件,以便将错误报告发送到包维护程序,并绑定到“*Packages*”缓冲区中的“b”。***新用户选项“package-vc-selected-packages”。通过自定义此用户选项,您可以指定特定的包安装。***新的用户选项“package-install-upgrade-built-in”。启用后,“package-install”将包括在可升级的包-那些内置包(如Eglot和例如,使用软件包),在包存档,并允许安装这些更新版本。默认设置为禁用;但是,如果调用了“软件包安装”如果使用前缀参数,则此新选项将启用。此外,当此选项为非零时档案中有一个新版本,可以通过该包升级由“列表包”生成的菜单。如果确实将此选项设置为非零,我们建议不要使用“U”命令,而是使用“/U”来显示可以升级的包,然后决定你实际上想从档案中更新它们。如果自定义此选项,我们建议您将其非默认在早期初始化文件中设置。**Emacs会话(桌面)***如果锁定Emacs未运行,则加载锁定桌面的新用户选项。选项“desktop-load-locked-desktop”现在可以设置为'check-pid',这意味着允许加载锁定的“.emacs.desktop”如果锁定它的Emacs进程不再在本地计算机。这可以避免有关锁定桌面的问题当锁定它的Emacs会话崩溃或发生其他情况时打断了,没有优雅地退出。请参阅“(emacs)保存Emacs手册中的“Emacs会话”节点了解更多详细信息。**其他***新命令“scratch-buffer”。此命令切换到“*scratch*”缓冲区。如果“*刮擦*”没有exist,命令首先创建它。如果您无意中删除了“scratch”缓冲区。**调试***“*Backtrace*”缓冲区中的“q”不再清除缓冲区。相反,它只是埋设缓冲区并从“debugger-mode”到“backtrace-mode”,因为像“e”这样的命令不是退出递归编辑后可用的时间更长。***新的用户选项“debug allow recursive debug”。此用户选项控制“e”(在“*Backtrace*”中)是否buffer或while edebugging)和“C-x C-e”(while edibugging)命令导致(进一步)回溯。默认情况下,此变量为零,这是与以前的Emacs版本相比的行为变化。***edebug中的“e”现在可以使用前缀arg来美化打印结果。当使用前缀参数调用时,如在“C-u e”中,此命令将弹出一个新的缓冲区,并在那里显示完整的漂亮打印值。***“C-x C-e”现在解释了一个非零前缀arg以美化打印结果。当使用非零前缀参数调用时,如“C-u C-x C-e”,此命令将弹出一个新的缓冲区并显示完整的精美打印价值。***您现在可以在redisplay中从Lisp错误生成回溯。为此,将新变量“backtrace-on-redisplay-error”设置为非零值。回溯将写入一个特殊的缓冲区名为“*重新显示跟踪*”。此缓冲区不会自动显示在窗口中。**编译***新的用户选项“编译隐藏输出”。此正则表达式可用于生成编译输出不可见。***“编译-自动跳转到第一个错误”用户选项已扩展。它现在可以具有附加值“if-location-known”(这将仅当第一个错误的位置已知时才跳转),以及“first-known”(将跳转到第一个已知错误位置)。***新的用户选项“compilation-max-output-line-length”。长于此选项值的行将具有其端点隐藏,用按钮显示隐藏的文本。这会加快速度操作,如对很少换行的文件进行grepping。默认值值为400;设置为零以禁用隐藏。**Flymake飞蝇***新用户选项“flymake-mode-line-lighter”。**新的次要模式“换行空白模式”用于扩展“换行”。此模式打开“字带”,并中断所有空白字符,而不仅仅是“SPC”和“TAB”。**用于编辑news文件的新模式“emacs-news-mode”。此模式添加了一些突出显示,使“M-q”命令意识到新闻条目的格式,并具有进行维护的特殊命令Emacs NEWS文件。此外,此模式打开“大纲次要模式”,从而显示可自定义的图标(请参阅“图标偏好”)。要禁用这些图标,请设置将“outline-minor-mode-use-buttons”设置为零。**Kmacro公司Kmacros现在是OClosures,有一个新的构造函数“kmacro”使用“key-parse”语法。它取代了旧的“kmacro-lambda-form”(现已宣布过时)。**savehist.el现在可以截断过长的变量。用户选项“savehist-additional-variables”的元素现在可以是格式为“(VARIABLE.MAX-ELTS)”,表示截断VARIABLE的值最多为MAX-ELTS元素(如果值是列表)在保存值之前。**微型缓冲区和完井***用于从微型缓冲区导航完成项的新命令。当minibuffer是当前缓冲区时,键入'M-'或“M”-'从“*Completions*”缓冲区并将其插入minibuffer。当用户选项“minibuffer-completion-auto-choose”为nil时,“M”-'和'M-'执行相同操作,但不插入微型缓冲区的完成候选,然后可以使用“M-RET”从“*Completions*”中选择当前活动的候选人buffer并退出minibuffer。带有前缀参数“C-u M-RET”将当前活动的候选项插入到微型缓冲区,但没有退出迷你缓冲区。这些键也可用于缓冲区完成,但他们不会自动插入候选人,您需要键入“M-RET”将所选候选插入缓冲区。***选择带有前缀参数的补全不会退出迷你缓冲区。这意味着在“*Completions*”缓冲区将完成插入到minibuffer中,但不退出minibuffer。***现在可以自动选择“*完成*”缓冲区。要启用此行为,请自定义用户选项将“completion-auto-select”设置为t,然后按“TAB”将切换到弹出缓冲区时显示“*Completions*”缓冲区。如果值为“第二个选项卡”,然后第一个“选项卡”将显示“*Completions*”,并且第二个将切换到“*Completions*”缓冲区。***新用户选项“completion-auto-wrap”。非空时,命令“next-completion”和“previous-completion”到达开始或结束时自动换行“*Completions*”缓冲区。***“completion-auto-help”用户选项的新值。有两个新值用于控制“*Completions*”缓冲区的方式如果完成不是唯一的,则在按下“TAB”后表现。价值观“总是”在任何尝试后更新或显示“*Completions*”缓冲区以完成。值“visual”类似于“always”,但仅更新完成项(如果它们已经可见)。默认值t总是在完成某些操作后隐藏完成缓冲区。***完成微型缓冲区历史记录的新命令。“微型缓冲区-完整历史记录”(“C-x')类似于'minibuffer-complete'但在历史记录项上完成,而不是默认完成表。'微型缓冲区-完整默认值'('C-x')完成在默认项目列表中。***用户选项“minibuffer-eldef-shorten-default”现已过时。改为自定义用户选项“minibuffer-default-prompt-format”。***新用户选项“完成排序”。此选项控制中完成候选项的排序“*Completions*”缓冲区。可用样式没有排序,字母(默认),或自定义排序函数。***新用户选项“completions-max-height”。此选项限制“*Completions*”缓冲区的高度。***新用户选项“completions-header-format”。这是一个字符串,用于控制要在“*Completions*”缓冲区位于完成列表之前。如果它包含“%s”,则替换为完成数。如果为零,则不显示标题行。***新用户选项“completions-highlight-face”。当此用户选项命名面时,当前“*Completions*”缓冲区中的候选人将以该脸突出显示。nil值将禁用此高亮显示。默认设置是高亮显示使用“完成-高亮”脸。***现在您可以定义minibuffer模式的缩写。“minibuffer-mode-abbrev-table”和现在定义了“minibuffer-inactive-mode-abbrev-table”。**I搜索并替换***Isearch对“mouse-yank-at-point”的反应方式发生了变化。如果用户使用“C-s”,然后使用“'('推拉主')默认情况下,Emacs将在echo区域外结束Isearch并在鼠标光标处猛拉文本。但如果“鼠标猛拉点”是非零,文本现在将被添加到Isearch中。***更改“isearch-wrap-pause”的值“no”和“no-ding”。现在有了这些值,搜索将不仅仅是重复使用“C-s C-s”,也可以在键入字符后使用。***新用户选项“char-fold-override”。Non-nil表示等效字符的默认定义被覆盖。***新命令“describe-car-fold-equivalences”。它显示“char-fold-to-regexp”使用的等效字符。***新命令“isearch-emoji-by-name”。在增量搜索过程中,它绑定到“C-x 8 e RET”。这个命令接受表情符号的Unicode名称(例如,“smithing”面”或“带箭头的心”),如“C-x 8 e e”,带迷你缓冲区完成,并将表情符号添加到搜索字符串中。**GDB/MI公司***新用户选项“gdb-debuginfod-enable-setting”。在功能强大的平台上,GDB10.1及更高版本可以下载缺失的源代码和调试来自专用服务器的信息文件,称为“debuginfod服务器”。使用此新选项来控制“M-x gdb”是否指示GDB在调试时从debuginfod服务器下载缺少的文件相应的程序。默认情况是在每个调试会话开始时是否下载文件那次会议。**无符号字符***新的次要模式“glyphless-display-mode”。这允许一种简单的方式切换查看中的所有无符号字符当前缓冲区。***“glyphless-char-display”的额外插槽现在可以有cons值。“glyphless-char-display”字符表的额外插槽现在可以有cons单元格的值,为text-mode指定单独的值以及GUI终端。***TTY上不可播放字符的“替换字符”功能。在文本模式中显示无符号字符的“缩写”方法框架特别处理单字符首字母缩写词:它们被显示没有周围的“[…]”“盒子”,因此实际上处理“首字母缩写词”作为替换字符。**寄存器***缓冲区名称现在可以存储在寄存器中。例如,要启用跳转到“*Messages*”缓冲区,请使用“C-x r j m”:(set-register?m'(缓冲区“*Messages*”))**像素填充***这是一个新的包,用于填充可变标签文本。***新功能“pixel-fill-region”。这将填充区域,使其宽度不超过指定的像素宽度。**信息***命令“info-apropos”现在使用前缀参数来搜索regexp。***新命令“Info goto node web”和密钥绑定“G”。这将把您带到“gnu.org”web服务器的当前版本信息节点。此命令仅适用于Emacs和Emacs Lisp手册。**Shortdoc公司***新命令“shortdoc-copy-function-as-kill”已绑定到“w”。它将点附近函数的名称复制到kill环中。***“N”和“P”现在绑定到“shortdoc”-{下一个,上一个}-部分'.这是对旧键绑定“C-C C-n”和“C-C C-p”的补充。**风险资本***新命令“vc-pull-and-push”。此命令首先执行“拉”命令,如果成功,然后执行“推送”命令。目前在Git和Bzr中支持。***“C-x v b”前缀键现在用于分支命令。“vc-print-branch-log”绑定到“C-x v b l”,新命令为“vc-create-brance”(“C-x v b C”)和“vc-switch-branch”(“C-x v b s”)。VC目录缓冲区现在将前缀“b”用于这些分支相关的命令。***新命令“vc-dir-mark-by-regexp”绑定到“%m”和“*%”。此命令基于正则表达式标记文件。如果给定前缀参数,改为取消标记。***新命令“C-x v!”(“vc-edit-next-command”)。此前缀命令请求编辑下一个VC shell命令在执行之前。例如,在Git存储库中,可以生成通过键入“C-x v!”记录多个分支!C-x v b l’然后将其他分支名称附加到“git-log”命令。其目的是使用此命令可以访问VC的各种版本控制系统特定功能不需要复杂化VC命令集或后端API。***diff缓冲区中的“C-x v v”只允许提交部分更改。此命令旨在允许您仅提交工作树中的更改。从创建缓冲区开始使用上次提交的更改,例如使用“C-x v D”(“vc-root-diff”)。然后编辑差异以删除不需要的大块想要提交。最后,在diff缓冲区中键入“C-x v v”进行提交只有你的部分改变,那些大块头留在缓冲区里的改变。***未注册文件上的“C-x v v”现在将使用最特定的后端。以前,如果你有一个SVN覆盖的“~/”目录,和一个Git覆盖的“~/foo/bar”中的目录,对新的未注册文件使用“C-x v v”“~/foo/bar/zot”将在“~/”中的SVN存储库中注册它,而不是在Git存储库的“~/foo/bar”中。这使得该命令与“vc-responsible-backend”一致。***Log Edit现在定义了长Git提交摘要行。编写较短的摘要行可以避免在以下上下文中截断Git命令显示摘要行。查看两个新的用户选项“vc-git-log-edit-summary-target-len”和“vc-kit-log-eedit-summary-max-len”。***新的“log-edit-headers-separator”脸。它用于设置分隔“日志编辑”标题的行的样式来自“日志编辑”摘要。***函数“vc-read-revision”接受新的MULTIPLE参数。如果非零,则可以查询多个修订。这是使用完成的“完成读取-多重”。***新功能“vc-read-multiple-revisions”。此函数使用非零值调用“vc-read-revision”多重。***新命令“vc-prepare-patch”。可以使用VC为任何版本控制系统准备补丁命令将查询要发送的提交并为其编写消息您的邮件用户代理。“vc-prepare-patch”的行为可以是由用户选项“vc-prepare-patches-separated”和修改“vc-default-patch-addressee”。**消息***新用户选项“mml-attach-file-at-the-end”。如果不是nil,“C-C C-a”将在消息末尾放置附加文件。***消息模式现在支持图像猛拉。***新用户选项“messageserver-alist”。这控制了“X-Message-SMTP-Method”的自动插入发送消息之前的标头。**HTML模式***HTML模式现在支持“text/HTML”和“image/*”猛拉。**Texinfo模式***“texinfo模式”现在有了一个专门的“窄到反芬”定义。它缩小到当前节点。**欧盟数据中心***计划在下一版本中进行折旧。在Emacs 29.1之后,EUDC的某些方面将被弃用。目标这些不推荐使用的方法之一是通过以下方式简化EUDC服务器配置使“eudc-server-hotlist”成为添加服务器的唯一位置。那里无需使用“eudc-set-server”设置服务器命令。相反,“eudc-server-hotlist”用户选项应该是自定义为具有服务器条目。该计划已过时“eudc-hotlist”包,因为自定义足以进行更改“eudc-server-hotlist”。“eudc服务器”用户选项如何在语境是待定的;它不能被移除,因为那样会中断兼容性,但它可能与同步“eudc-server-hotlist”,以便“eudc-server”始终等于“(careudc-服务器热列表)。“eudc-server-hotlist”中的第一项是“eudc-expand-try-all”尝试的第一个服务器。热门名单简化将允许“eudc-queryform”显示可能的服务器,而不需要调用“eudc-set-server”就像这个版本一样。的默认值“eudc-ignore-options-file”将从nil更改为t。***新的用户选项“eudc-ignore-options-file”默认为零。可以将“eudc-ignore-options-file”用户选项配置为忽略“eudc-options-file”(通常为“~/.emacs.d/eudc-options”)。大多数用户应该将其配置为t,并将EUDC配置放入主Emacs初始化文件(“~/.Emacs”或“~/.Emacs.d/init.el”)。***将“eudc-expansion-overwrites-query”更改为“eudc-expansion-save-query-as-kill”。用户选项“eudc-expansion-overwrites-query”重命名为“eudc-expansion-save-query-as-kill”以反映用户选项。前者保留为别名。***新命令“eudc-expand-try-all”。此命令可以用来代替“eudc扩展内联”。这需要一个导致“eudc-expand-try-all”返回匹配项的前缀参数从所有服务器,而不仅仅是从第一个服务器到返回任意。例如,如果要搜索LDAP,这很有用与BBDB中的联系人匹配的姓名。***用户选项“eudc-inline-expansion-format”的新行为和默认值。EUDC内联扩展结果格式默认为(“%s%s<%s>”名字电子邮件)由于电子邮件地址规范需要符合RFC 5322为了在消息中有用,存在产生语法的风险这是RFC 822的标准,但被标记为过时语法其后续的RFC 5322。此外,名字和姓氏部分从来没有用双引号括起来,可能会产生无效地址可能会被接收MTA拒绝。因此,这变量现在可以另外设置为nil(新的默认值),或者功能。在这两种情况下,格式化的结果都符合要求符合RFC 5322。当设置为nil时,默认格式与将生成旧的默认值。当设置为函数时,该函数调用,返回的值用于填充短语和注释部分(有关定义,请参阅RFC 5322)。在这两种情况下如有必要,短语部分将自动引用。***新功能“eudc-capf-complete”与“message-mode”集成。EUDC现在可以通过以下方式将电子邮件地址添加到“完成点”将新功能“eudc-capf-complete”添加到“消息模式”下的“点函数完成”。***eudcb-macos-contacts.el中查询和结果的其他属性。macOS Contacts应用程序的EUDC后端现在提供了更广泛的设置用于查询的属性,并在中提供更多属性查询结果。***用于完成的新后端。新的ecomplete后端允许该数据库中的信息也会被EUDC查询。EUDC查询中存在的属性包括用于选择ecomplete数据库中的条目类型。***mailabbrev的新后端。mailabbrev的新后端允许该数据库中的信息也会被EUDC查询。只有属性“email”、“name”和支持“firstname”。**EWW/SHR公司***自动重命名EWW缓冲区的新用户选项。可以将“eww-auto-rename-buffer”用户选项配置为重命名使用标题、URL或用户定义的函数返回字符串。对于前两种情况,长度结果名称的'eww缓冲区名称长度'。默认情况下,不会自动重命名已执行。***新用户选项“shr-allowed-images”。这是对“shr-blocked-images”的补充,但只允许指定允许的图像。***新的用户选项“shr-use-xwidgets-for-media”。如果非零(并且Emacs已经构建并支持xwidgets),显示