← 返回故事列表

键盘上的帝国:比尔·乔伊与vi的意外诞生

时代:1976
阅读时间:8 分钟
浏览:5
点赞:0

1976年的加州大学伯克利分校,一台笨重的ADM-3A终端前,24岁的比尔·乔伊正面临一个看似简单却足以改变历史的问题:这台售价仅795美元的廉价终端,竟然没有光标键。在Unix世界的黎明,几乎所有人都认为文本编辑器必须有光标键——就像汽车必须有方向盘。但乔伊做出了一个疯狂的创业决策:与其等待更好的

# 键盘上的帝国:比尔·乔伊与vi的意外诞生 1976年的加州大学伯克利分校,一台笨重的ADM-3A终端前,24岁的比尔·乔伊正面临一个看似简单却足以改变历史的问题:这台售价仅795美元的廉价终端,竟然没有光标键。在Unix世界的黎明,几乎所有人都认为文本编辑器必须有光标键——就像汽车必须有方向盘。但乔伊做出了一个疯狂的创业决策:与其等待更好的硬件,不如用软件重新定义“编辑”。他用几周时间写出了一个名为“vi”的程序,却在接下来的四十年里,让全球数百万程序员心甘情愿地背诵那些晦涩的键盘咒语。 ## 被逼出来的革命:从ed到vi的困局 1976年,计算机产业正经历一场静默的革命。AT&T的Unix操作系统开始在学术界流行,但它的文本编辑器ed却让人抓狂——这是一个“行编辑器”,你只能看到一行文字,无法直接定位到屏幕上的某个字符。这种体验就像戴着墨镜写诗,你永远不知道下一行会不会歪掉。 比尔·乔伊当时是伯克利分校一名研究生,负责维护Unix系统。他每天要处理大量代码,ed的低效让他濒临崩溃。“我必须看到我编辑的文本,”他在多年后的访谈中回忆,“ed就像在黑暗中摸索。”乔伊的解决方案是写一个“屏幕编辑器”,让用户能够看到文件的全貌。 但真正的技术挑战来自硬件。伯克利使用的ADM-3A终端由一家名为Lear Siegler的小公司制造,为了降低成本,它没有独立的光标键区域。取而代之的是一个奇怪的布局:Esc键位于键盘左上角,Home键在一排,而字母键“h”、“j”、“k”、“l”上则印着微小的向左、向下、向上、向右箭头——这些箭头本来是用来控制终端光标的,但没人真的用它来编辑文本。 乔伊做出了一个改变命运的技术决策:既然硬件没有光标键,那就用这些字母键来移动光标。“我注意到这些键正好在手指的自然位置,”乔伊说,“如果我把编辑模式分开,用户就可以在不离开主键盘区的情况下完成所有操作。”于是,vi的模态操作模式诞生了——一个普通模式用于移动和操作文本,一个插入模式用于输入。Esc键成了切换模式的魔法按钮,而h、j、k、l则成了程序员手指的延伸。 这个设计在商业上堪称天才:它不需要任何额外硬件,只需要一个终端和一台Unix机器。在硬件成本高昂的1970年代,这意味着伯克利可以免费分发vi,而用户只需要一个便宜的ADM-3A——或者任何兼容的终端。乔伊没有申请专利,没有成立公司,他只是把代码放进了BSD Unix(伯克利软件发行版)中,让全世界免费使用。 ## 疯狂的几周:创业者的孤注一掷 乔伊只用了几个星期就写出了vi的第一个版本。这听起来像是神话,但背后是一个创业者的典型模式:极度专注、资源匮乏、以及对自己工具的绝对信仰。当时的乔伊没有助手,没有测试团队,甚至没有像样的调试器。他每天工作16个小时,在大学的地下室里,对着那台ADM-3A终端,一行行地敲击着C语言代码。 “最疯狂的是,我一开始甚至没有画设计图,”乔伊后来说,“我一边写代码一边构思功能。”这种“边飞边造飞机”的方式,恰恰是早期硅谷创业者的标志性作风。vi的第一个版本功能极其有限:只能打开文件、移动光标、删除字符。但乔伊很快意识到,这个编辑器必须能完成一切文本操作——从简单的打字到复杂的宏命令。 一个关键的商业决策发生在乔伊决定加入“命令组合”概念时。例如,在ed中,删除一行需要输入“d”,而在vi中,你输入“dd”——按两次d键。这看起来更复杂,但乔伊的设计哲学是:让常用操作变得极其快捷,让复杂操作变得可能。他加入了“.”命令(重复上一次操作)、“:wq”(保存并退出)、“/”(搜索)等“咒语”,这些命令在初学者看来像天书,但对熟练用户来说,它们比任何鼠标点击都快十倍。 乔伊的竞争对手是当时更流行的编辑器如TECO和Emacs。TECO的创始人理查德·斯托曼(Richard Stallman)后来创立了GNU项目,Emacs则以其强大的扩展性著称。但vi走了一条完全不同的路:它不追求可编程性,而是追求“手指记忆”。乔伊的直觉是:程序员最宝贵的资源不是CPU时间,而是注意力。vi的设计让用户不必思考“我要怎么操作”,而是让手指自动做出反应。 这个商业直觉在1970年代显得格外反直觉。当时大多数软件公司都在追求“易用性”,让新手能轻易上手。vi却故意设置了一个陡峭的学习曲线——它用“模态”让新手困惑,用“快捷键”让高手飞起。乔伊赌的是:一旦程序员跨过那个门槛,vi的效率和深度会让他们永远无法回头。 ## 信仰的遗产:从vi到Vim的帝国 vi的成功远超乔伊的预期。随着BSD Unix在大学和研究机构的普及,vi成了这些机构的标准编辑器。1980年代,当AT&T开始商业化Unix时,vi已经深深嵌入到Unix文化中。乔伊后来离开伯克利,与其他人共同创立了Sun Microsystems,但vi的生命力完全独立于他本人。 1991年,一位名叫Bram Moolenaar的荷兰程序员发布了vi的改进版“Vim”(Vi Improved)。Vim加入了多级撤销、语法高亮、插件系统等现代功能,但保留了vi的核心哲学:模态操作、键盘中心、极简主义。Moolenaar将Vim作为“慈善软件”发布,鼓励用户向乌干达的儿童基金会捐款。这个非商业化的决策,反而让Vim在开源社区获得了宗教般的忠诚。 vi的商业启示在于:有时候,最好的商业策略不是追求最大用户群,而是培养最忠实的用户群。vi从未试图讨好所有人,它只服务于那些愿意花时间学习的深度用户。结果呢?四十多年后,vi和Vim仍然是全球程序员最常用的编辑器之一。在Stack Overflow的年度调查中,Vim常年位居“最受欢迎编辑器”前三名,仅次于Visual Studio Code和IntelliJ。而Visual Studio Code的创始人之一Erich Gamma曾公开承认,VS Code的键盘快捷键设计受到了vi的深刻影响。 但vi的真正遗产不是技术,而是一种文化:它教会了程序员“工具即信仰”。在vi的世界里,编辑器不是软件,而是身体的一部分。那些“:wq”、“dd”、“yy”的咒语,不仅仅是命令,更是一种身份的象征。vi用户之间有一种默契:当两个人互相展示自己的.vimrc配置文件时,他们不是在比较技术,而是在交换哲学。 乔伊本人对vi的商业成功始终保持着一种克制的态度。“我只是解决了一个实际问题,”他在一次采访中说,“我从未想过它会成为什么信仰。”但正是这种“解决问题”的务实态度,加上对硬件限制的创造性利用,让vi成为了一个传奇。它证明了一个深刻的真理:在软件行业,最好的产品往往不是由市场调查驱动的,而是由一个疯狂的开发者在一个深夜,面对一台没有光标键的终端时,决定用代码重新定义“可能”。 ## 评论 vi的故事是一则关于“约束催生创新”的寓言。在商业史上,大多数成功产品都源于对现有条件的创造性利用,而非对完美环境的等待。乔伊没有抱怨ADM-3A终端缺少光标键,而是用软件重新定义了人机交互的范式——这恰恰是硅谷“黑客精神”的核心:不要等待工具变好,而是自己造一个更好的工具。vi的商业教训在于:真正的护城河不是技术,而是用户习惯。一旦程序员的手指记住了“hjkl”的位置,任何鼠标驱动的编辑器都显得笨拙。这种“肌肉记忆”的锁定效应,比任何专利或市场推广都更强大。同时,vi的免费分发模式也提醒我们:在软件产业的早期,开放和共享往往能比封闭和收费创造更大的长期价值。今天,当Visual Studio Code用图形界面统治世界时,vi依然在用它的“反人性”设计提醒我们:真正的效率,有时恰恰来自那些最初让人痛苦的约束。 ## 参考资料 - [Bill Joy 维基百科](https://en.wikipedia.org/wiki/Bill_Joy) — vi创始人的生平和技术贡献 - [vi 文本编辑器维基百科](https://en.wikipedia.org/wiki/Vi_(text_editor)) — vi的历史、设计和演变 - [ADM-3A 终端维基百科](https://en.wikipedia.org/wiki/ADM-3A) — 那台没有光标键的终端,vi的硬件起源 - [Vim 官方站点](https://www.vim.org/) — vi的现代继承者Vim的官方网站 - [《The Art of Unix Programming》](https://en.wikipedia.org/wiki/The_Art_of_Unix_Programming) — Eric S. Raymond 著,详细分析vi的设计哲学 - [Stack Overflow 2023 开发者调查](https://survey.stackoverflow.co/2023/) — 显示vi/Vim在开发者中的持续流行度

发布于 2026/7/4