Emacs 附带更多电池

2026-06-15 1 阅读 signa11
Emacs 功能存在可发现性问题,我们正在一次一个地解决这个问题。自从我写完最后一篇报告以来,这些年已经产生了更多令人惊讶和有用的发现,所以现在又到了“包含电池”报告的时候了。注意这是一系列文章中的第三篇,重点介绍 Emacs 中包含的有用但鲜为人知的功能。第 1 部分和第 2 部分:Emacs 附带的电池 emacs 附带更多电池 “鲜为人知”是一种主观判断。粗略地说,这意味着在撰写本文时,在过去 20 年的在线 Emacs 讨论中,我看到这些功能被提及的次数不到五次,而且通常从未出现过。过去条目中介绍的一些功能是众所周知的,并且现在经常被推荐。我不主张任何信用。如果您是 Emacs 新用户,请不要从这里开始。这不是入门指南。理解基本的 Emacs 概念并坚持使用最广泛推荐的软件包将会为您带来更好的服务。一旦您体验过 Emacs 中类似的想法,比如“为什么直到 1990 年才想到在行李箱上装轮子?”,这个系列可能会更有帮助。我的经验法则是,如果您还不知道区域内撤消,那么有很多容易实现的成果可供采摘,您可以在供应用完后回到本文! 。资深 Emacs 用户倾向于使用一些相对小众的 Emacs 功能,但根据我的经验,每个用户总是使用不同的子集。因此,如果您已经来过该街区几次,我保证下面仍然会给您带来惊喜!与以前相同的规则:没有软件包,仅提供 Emacs 没有陡峭的学习曲线。在五分钟内了解每个功能或半身像。没有噱头。没有医生、俄罗斯方块、蛇、邓尼特、地带、蝴蝶……是的,我们知道分离新闻。让我们继续吧。只是三角洲。没有常见的软件包,如 Flymake、doc-view、outline-minor-mode、gnus 或 eww。 Emacs 自动显示的内容或非特定的 Google 搜索都无法帮助您找到答案。假设有一个现代 Emacs,28.1+。另外,如果您是 Emacs 新手并且仍在阅读: Emacs 术语 现代用语 M-x Alt + x C-x Ctrl + x Frame Emacs 窗口 窗口分割/窗格 缓冲区 文本/数据的连续块 点 缓冲区中的光标位置 活动区域 文本选择区域 文本选择(未突出显示) 字体、颜色和显示属性 抱歉。好的?让我们开始吧:悬停时的字典(M-x字典工具提示模式)打开字典工具提示模式,当您将鼠标悬停在工具提示上时查看工具提示中的单词含义:当然,工具提示模式也需要启用,但这是默认设置。如果您设置了本地词典,它将首先尝试这些词典。请注意,Emacs 的字典也可以查找当代行话和行话,通常通过维基词典: [视频:Emacs 字典-工具提示-模式演示] find-file 和 dired 带通配符 两个最常用的 Emacs 命令的一个令人惊讶的鲜为人知的实用程序:在交互使用 find-file 和 dired 时,您可以使用通配符。使用 find-file ( C-x C-f ) 查找文件时,使用 *foo*.txt 等通配符一次打开多个文件。使用 Dired 打开目录时,通过指定文件名通配符生成特定文件的自定义列表。这是一个演示,其中两个功能都用于清理一些(非常)旧的 TeX 编译工件,然后一次打开一堆 LaTeX 文件: [视频:Emacs Dired 和 Find-File 通配符演示] 逐个播放 使用“两级”通配符运行 Dired */*_region_* :查找名称中包含“_region_”的所有文件,但仅在子目录中。 Dired 生成这些文件的列表。 (这些是 AucTeX 创建的临时文件。)全部选择它们(使用 dired-toggle-marks 绑定到 t )并删除它们。使用通配符运行 find-file,打开子目录中的所有 TeX 文件。检查缓冲区列表以查看已打开多个 TeX 文件。 (用于查看打开缓冲区列表的命令是 Consult-buffer ,完成结果由 Corfu 显示。)从它们的函数签名中可以明显看出,以编程方式调用它们时这是可能的。但是要意识到这种功能在交互使用期间也可用,需要阅读完整的文档字符串,而没有人有时间这样做!在实践中,Dired 通配符功能被现代工作流程所取代,例如通过 board-export 导出为 Dired 缓冲区的 Consult-find,但这是开箱即用的。使用 M-x ffap-menu 列出所有 URI 您可能熟悉 Emacs 的“在点查找文件”功能 M-x ffap ,它检查光标是否位于有效的文件路径上并提供打开它的功能。它伴随着 ffap-menu ,这是一个不太为人所知但同样方便的命令。 ffap-menu 扫描整个缓冲区中任何看起来像文件路径或 URL 的内容,并向您呈现所有内容: [视频:Emacs ffap-menu 演示] 由于它提供了一个完成读取接口,这打开了一个小宇宙的可能性:您可以将(可能已过滤的)完成列表导出到 bu