Hacker News 中文摘要

RSS订阅

Emacs包含更多电池 -- Even more batteries included with Emacs

文章摘要

这篇文章是Emacs"内置电池"系列第三篇,介绍了一些鲜为人知但实用的Emacs功能。作者指出这些功能虽不常见但很有价值,建议新手先掌握基础后再探索这些进阶特性。文章延续了前两篇的风格,旨在帮助用户发现Emacs隐藏的强大功能。

文章总结

Emacs内置功能探索:鲜为人知的实用技巧

背景说明

本文是"Emacs内置功能"系列的第三篇,重点介绍那些实用但鲜为人知的Emacs原生功能(不涉及第三方包)。作者强调这些功能在Emacs社区讨论中很少被提及(过去20年见到次数少于5次),适合已经掌握基础操作的中高级用户。

精选功能展示

  1. 悬停查词模式 (M-x dictionary-tooltip-mode)

    • 启用后鼠标悬停显示单词释义
    • 优先使用本地词典,也支持通过Wiktionary查询网络流行语
    • 需配合默认启用的tooltip-mode使用
  2. 通配符文件操作

    • find-file(C-x C-f)支持通配符批量打开文件(如*foo*.txt
    • dired可通过通配符筛选特定文件(演示中清理TeX编译临时文件)
  3. 智能路径菜单 (M-x ffap-menu)

    • 扫描整个缓冲区识别所有文件路径/URL
    • 提供交互式选择界面,支持批量操作
  4. 轻量级窗口对比 (M-x compare-windows)

    • 实时比较两个窗口的文本差异
    • 忽略文件来源,支持同文件不同区域的比较
    • 可添加前缀参数忽略空白差异
  5. 目录对比工具 (M-x dired-compare-directories)

    • 标记名称不同的文件
    • 支持自定义比较条件(如修改时间、文件大小)
  6. 修改高亮模式 (M-x highlight-changes-mode)

    • 可视化未保存的修改
    • 可通过hook实现自动启用/关闭
    • 提供highlight-changes-next-change导航命令
  7. 备份文件实用化

    • 通过改造vc-diff等命令,使其支持非版本控制文件
    • 可对比当前文件与最新备份或指定历史版本
  8. 进阶搜索家族 (apropos系列)

    • 包含apropos-function/apropos-variable等细分命令
    • customize-apropos可交互式修改匹配选项
  9. 键位溯源功能 (M-x find-function-on-key)

    • 一键跳转到键绑定对应的源码定义
    • 建议绑定到C-h M-k作为describe-key的补充
  10. 文本复制增强

    • copy-from-above-command复制上方行内容(类似Vim的C-y
    • duplicate-dwim复制当前行/选区到下方(类似Vim的yyP

其他实用工具

  • 历史宏编辑 (M-x kmacro-edit-lossage):从最近300次按键记录创建宏
  • 智能分词模式subword-mode处理驼峰命名,superword-mode处理蛇形命名
  • 图片操作:在图片上按i激活操作菜单(缩放/旋转/裁剪)
  • 全局显示模式visible-mode强制显示所有隐藏文本
  • 滚动同步scroll-all-mode实现多窗口同步滚动
  • 防误删保护emacs-lock-mode锁定重要缓冲区防止意外关闭
  • 框架恢复undelete-frame-mode支持恢复最近关闭的16个框架

使用建议

作者建议新用户先掌握基础操作(如undo-in-region),待熟悉核心概念后再探索这些进阶功能。每个功能都设计为5分钟内可掌握,且避免包含游戏等非实用功能。

(注:本文保留了约80%的核心内容,删减了部分代码示例和视频说明等辅助信息,聚焦于功能描述和使用场景)

评论总结

以下是评论内容的总结:

  1. Emacs学习曲线问题

    • 有用户表示即使长期使用仍难以掌握某些功能(如Dired)
    • 关键引用:
      • "I have been using Emacs since 1994...and I still don't understand Dired" (tptacek)
      • "the typing is hard even as near 2 decades user of Emacs" (mintflow)
  2. 稳定性与更新问题(主要争议点)

    • 批评方:多个用户反映包依赖问题和更新导致的崩溃
      • "everything break on updates and need fixing" (buzzwords)
      • "any additional package added can bork some random, seemingly unrelated package" (gnulinux)
    • 支持方:有用户表示Doom Emacs运行稳定
      • "everything mostly just works other than some color scheme weirdness" (QwenGlazer9000)
  3. 与其他编辑器的比较

    • 部分用户同时使用VSCode/Neovim
      • "been more like part-time along with VSCode since ~2024" (gnulinux)
      • "used to be on neovim, and that ecosystem compared to emacs feels..." (QwenGlazer9000)
    • 戏谑观点:
      • "Emacs is a great OS...you may have a working editor as well" (shevy-java)
  4. 特定功能评价

    • 对org-mode等功能的喜爱与使用障碍并存
      • "saw orgmode once and I really loved it" (buzzwords)
      • "agda2-mode is incredibly good, almost flawless" (gnulinux)

注:所有评论均无评分数据(评分均为None),主要分歧集中在稳定性问题上,既有尖锐批评也有积极使用体验。