Emacs 与鼠标:对啮齿动物的适度辩护

关于 Emacs(以及类似编辑器)应主要由键盘还是鼠标驱动的争论,揭示了一个更深层的张力:感知效率、实际速度与人体工学之间的平衡。评论者引用了数十年前的 Apple 研究、更近年的批评以及各自的工作流,认为键盘擅长精确、可复现的离散操作,而鼠标、触控板和 TrackPoint 则更适合滚动、空间导航与探索性工作。多数人最终认为,严格的“绝不使用鼠标”并非必要:最有效的设置高度个体化,通常会混合键盘快捷键、命令面板,以及选择性定制的鼠标或手势绑定。

键盘 vs 鼠标的效率与流畅性

  • 几位评论者强调,“更快”在某种程度上指的是感知到的顺滑度和保持心理上下文,而不只是秒表上的时间。
  • 有些人认为,键盘导航在离散命令上明显更快(保存、搜索、项目导航),而另一些人则觉得,基于鼠标的滚动、跳转到远处代码以及窗口选择更为流畅。
  • 那句著名的 Apple 引语——声称用鼠标更快——被认为已经过时,而且很可能只适用于特定上下文和特定任务;人们引用了更近年的批评,认为那些研究并不扎实。
  • 线程中的一位研究者认为:鼠标擅长连续动作(滚动、绘图),因为移动能直接映射到进度;键盘则擅长离散的、可组合的步骤,并能带来一致、可复现的结果。
  • 大家普遍同意在设备之间切换(键盘 ↔ 鼠标)会带来摩擦,但对于这种摩擦在实践中到底有多大,意见并不一致。

Emacs 工作流与鼠标使用

  • 一些长期用户在很早期就禁用了鼠标,以迫使自己掌握键盘操作,如今几乎不再觉得需要指点设备。另一些人则后悔曾经回避图形化 Emacs,现在大量依赖鼠标支持。
  • Emacs 中常见的鼠标用途包括:平滑滚动、精确放置光标、矩形选择、多光标、上下文菜单、悬停文档,以及 Ctrl-单击“跳转到定义”。
  • 关于手势/笔画(strokes)包的看法分歧很大:有些人认为它们适合不常用但复杂的动作;另一些人则反映识别效果很差,更偏好可编程鼠标按键或键盘快捷键。
  • 许多人强调 Emacs 的灵活性:它既可以完全在 TTY 中运行,也可以在带有丰富鼠标集成的完整 GUI 中运行,或者混合使用。

定制、重度用户文化与“削木工”

  • 一派人更喜欢接近默认设置并避免无休止地调整,认为这有助于把注意力集中在真正的工作上。
  • 另一派则认为配置和小型自动化(例如一键生成丰富的 GitHub 链接)本就是编程工作的一部分,即便每次调整带来的效率提升都很小。
  • 对“Emacs 用户只是为了折腾而定制”的刻板印象也有一些反弹;他们把这种行为描述为有意的投入。

指点硬件与人体工学

  • 讨论涉及鼠标、触控板、TrackPoint 和轨迹球。
  • 居中的触控板和笔记本布局因减少伸手距离、让混合输入更符合人体工学而受到称赞;也有人不喜欢笔记本键盘,更偏好带集成指点设备的外接分体/人体工学键盘。
  • 开源、固件可配置的外设(鼠标和键盘)被强调为能够启用分层按键绑定,并与编辑器深度集成。

Acme 与替代交互模型

  • 有些人强烈建议试用 Acme 一个月,声称它会改变你对以鼠标为中心的编辑,以及工具之间管道化协作的思考方式。
  • 另一些人则质疑它的实用性:缺少或弱化了现代功能(LSP、丰富宏)、把文件系统当作 API 的设想在规模上的限制,以及依赖点击来执行操作,容易出错。
  • 也有人希望在 Emacs 里获得类似 Acme 的体验,在不离开现有生态的情况下得到它那种由鼠标驱动的流畅感。

远程编辑与环境约束

  • Emacs 能够在纯终端上、通过完整的键盘工作流运行(例如在没有窗口系统的 HPC 服务器上),这一点与 VS Code 依赖远程扩展和单独的 GUI 客户端形成对比。
  • 有些人觉得远程 GUI 编辑没问题;另一些人则更喜欢直接在目标机器上编辑,因为这样更简单,而且在感知上更安全。

文化 / 元层面的观察

  • 评论者提醒不要陷入纯粹主义:坚持“永远不用鼠标”或“只用鼠标”都被视为适得其反;很多人会根据任务混合使用工具(探索性工作 vs 专注编码)。
  • 还有人担心,越来越少的新程序员会盲打,或采用键盘占主导的编辑器,尤其是在语音和 AI 辅助工作流普及的背景下,不过也有人认为这是不可避免的变化。
  • 键盘 vs 鼠标的争论被描述为永恒话题;这里的共识是二者相辅相成,最佳选择取决于任务、硬件和个人偏好。