无模式 Vim

一个把 Vim 改造成无模式、采用熟悉 GUI 风格快捷键(Ctrl‑S 保存、Shift+方向键选择、Ctrl‑C/V 复制粘贴)的配置,正在让终端用户产生分歧。支持者喜欢它:平时主要用 VS Code 之类编辑器的人,在偶尔进入远程 shell 时,也能继续受益于 Vim 的普及度、语法高亮和插件生态。批评者则认为这破坏了 Vim 的核心优势——模式化、可组合的命令——并建议改用 Vim 内置的“easy mode”、带 CUA/Evil 模式的 Emacs,或像 micro 这样的其他无模式终端编辑器。

目的与预期使用场景

  • 该配置将 Vim 变成一个无模式、类似 GUI 的编辑器(Ctrl‑S 保存、Shift+方向键选择、Ctrl‑C/V 等等)。
  • 面向平时使用 GUI 编辑器(例如 VSCode),但偶尔需要终端编辑器的人,尤其是在通过 SSH 连接时。
  • 一些用户表示,当他们偏好的无模式终端编辑器(例如 micro、nano)力有未逮或不可用时,他们仍然想要 Vim 的语法高亮和生态系统。

与现有方案的比较

  • 多位评论者指出,Vim 内置的“easy mode”(vim -y / evim)和 mswin.vim 已经让 Vim 更接近 CUA/Windows 行为。
  • 也有人提到其他终端编辑器(micro、nano、mcedit),或者直接使用可远程连接的 GUI(VSCode remote、带远程插件的 Sublime、Emacs -nw)。
  • 有人提出疑问:如果你被允许在远程机器上安装这套配置,为什么不直接安装你偏好的编辑器?反驳是:在共享/受限系统上,通常可以改 $HOME,但不能安装软件包。

模式与无模式之争

  • 许多人为 Vim 的模式辩护,认为这是它的核心优势:可组合的移动命令、高效率、较少使用鼠标、减少手指别扭姿势,对 RSI 也有帮助。
  • 另一些人则认为模式令人困惑,会增加用户错误,并且与跨应用普遍学习到的 CUA 快捷键相冲突。
  • 有人说“所有编辑器在宽泛意义上都是有模式的”(焦点变化会改变行为);也有人坚持 Vim 的模式在性质上不同,因为同一个文本区域会改变每个按键的含义。

学习曲线、记忆负担与可发现性

  • 几位评论者承认自己总是“学一半 Vim”,然后因为很少使用而忘记命令。
  • 反对观点是:基本移动命令几分钟就能学会;经过练习,Vim 会变得自然且高效。
  • 更温和的学习建议包括:速查表背景、类似 which-key 的弹出提示,或者使用 Helix/Kakoune 这类会交互式展示可用移动命令的模式化编辑器。

人体工学与按键文化

  • 有很长的讨论串在谈把 Caps Lock 重映射为 Escape(通常是轻按=Esc,长按=Ctrl)对于舒适使用 Vim 至关重要;也有人更喜欢 Caps→Ctrl,或者继续使用 Ctrl‑[ / jk 映射。
  • 还有关于重新夺回旧式 TTY 快捷键如 Ctrl‑S / Ctrl‑Q 的争论,以及在 2024 年终端和 TUI 应该如何处理这些快捷键。

可移植性、理念与反应

  • 有人认为过度自定义工具会降低在随机机器上直接使用默认环境的能力;也有人主张通过版本控制的 dotfiles 或可移植二进制把配置带到任何地方。
  • 反应从“这对我的精确场景很有用的技巧”到“异端”再到“没意义——直接学 10 个 Vim 按键或者用 nano/micro 就好”不等。
  • 一个总体观点是:编辑器选择是个人化的;几位评论者呼吁停止围绕 Vim、Emacs 和 GUI IDE 的文化战争语气。