加载失败
这篇帖子围绕一张 vi 家族谱系图展开,梳理从 ed/ex/vi 到 Vim、Neovim,再到 nvi、vis、vile、Helix、Kakoune 等分支。评论把它放回到老 Unix、SSH 远程救火、串口终端和 BusyBox(轻量级 Unix 工具集)这些场景里,解释为什么 vi 会在几十年后仍然有用。另一条线是现代配置发行版和插件,例如 LazyVim、AstroNvim、flash.nvim,把 NeoVim 变得更像 IDE。还有人从 Emacs 的 TRAMP(远程编辑)或 LLM-generated code 的争议切入,讨论编辑器选择其实牵涉到工作流、历史包袱和对自动化的态度。
不少人说自己喜欢 vi/vim,并不是因为它能让人神速,而是因为它把编辑变成了一种可练习、可优化的游戏。随着熟练度提升,光标移动、删除、替换、宏和批量操作会逐渐变得像解谜一样顺手,这种“越学越顺”的反馈比纯粹的效率宣传更能留住人。也有人补充说,bufdo 这类批量命令和宏确实能在重复任务里节省时间,但真正的吸引力还是手感与流畅度。
另一条主线是极简配置和 muscle memory 的价值。很多人只保留很少的 vimrc 选项,甚至几乎不装插件,因为他们常年在不同 Unix、Windows 和多台机器之间切换,统一手感比折腾配置更重要。反方则认为编辑器是每天高强度使用的工具,哪怕一点点效率提升都会长期回本,换到更现代的工作流或 IDE 并不吃亏。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10]
很多评论强调 vi 的真正优势来自远程和受限环境,而不是本地写代码。SSH 到服务器、串口终端、救援模式、BusyBox 环境里,vi 往往是最稳妥甚至唯一可用的编辑器,所以“能立刻改文件”比功能丰富更重要。也有人提到 TRAMP(Emacs 的远程文件编辑功能)能覆盖部分场景,但在连接慢、路径容易混淆或必须和终端命令保持同一上下文时,直接在服务器上用 vi 反而更放心。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8]
LazyVim 和 AstroNvim 被不少人视为把 NeoVim 直接包装成 IDE 的方式。支持者喜欢 flash.nvim 的快速跳转、lazygit、GrugFAR 以及各种语言支持开箱即用,觉得生产力提升很明显;批评者则觉得学习成本和默认复杂度太高,而且如果目标就是 IDE,不如直接用 IDE。这个分歧本质上是在争论:该保持 vi 的简洁传统,还是把它堆成一个更完整的平台。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10]
Helix 和 Kakoune 的讨论核心不是“多了几个键位”,而是编辑模型本身。支持者强调 selection-action(先选后操作)和 multi-selection 让对象始终可见、状态更少,更符合直觉;反对者则认为 vi/vim 的 action-selection 已经足够强,配合 visual mode 或 flash.nvim 之类插件也能获得很快的操作体验。双方真正分歧的是:到底要不要为“先看清目标”支付更多按键。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11]
很多人把这篇文章当成一张 vi 家族树来看待,并顺手补了大量历史和旁支细节。有人追问为什么没写 Bill Joy 或 Bram Moolenaar,也有人列出 nvi、vis、vile、nextvi、neatvi、vi65、OpenBSD vi、BusyBox vi 等冷门实现,以及 ed/ex 这条前史。评论还补进了 Unicode、UTF-8、cscope、6502/C64、TRAMP 前身等信息,说明这其实是一个跨几十年的编辑器生态,而不是单一软件。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14] [来源15] [来源16] [来源17]
文章里对 LLM-generated code 的区分让一部分人觉得很别扭,像是把原本偏技术史的内容硬拽进立场之争。也有人认为,这种标注会在未来变成有意义的时代注脚,因为它记录了开发方式正在分化。讨论最后甚至滑到“Luddite”“纯净工具”“是否该拒绝自动化”这些老问题上,争论的其实是技术选择背后的身份边界。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14]
另一批人则直接质疑把 vi 当成默认最优解的前提。有人认为鼠标用户同样能通过 Fitts' Law 练出很快的定位能力,GUI 编辑器在分屏、图像、窗口管理和鼠标选择上并不弱;Emacs、mg、nano、joe、Zed、VSCodium 等也都被当作可行替代。整体语气不是否定模态编辑,而是提醒大家:工具要按场景选,没必要把 vi 神圣化。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12]
LazyVim: 一个预配置的 NeoVim 发行版,强调开箱即用和较完整的默认功能。
AstroNvim: 另一个 NeoVim 配置发行版,主打集成体验和社区扩展。
Helix: 现代模态文本编辑器,强调 selection-first 和 multi-cursor 体验。
Kakoune: 以 selection-action 为核心的模态编辑器,先选对象再执行操作。
flash.nvim: NeoVim 的快速跳转插件,用高亮标签把光标直接定位到目标文本。
TRAMP: Emacs 的远程文件编辑机制,可通过 SSH、FTP 等方式直接编辑远端文件。
cscope: 源代码交叉引用与搜索工具,常用于在大型代码库里快速定位符号和调用关系。
selection-action: 先选择目标范围,再对选区执行动作的编辑模型,与 vi/vim 的 action-selection 相对。