Vim 的前世今生

每个开发者都有着自己情有独钟的文本编辑器,我 Windows 系统下用的是 Notepad++,在 Linux 系统下搭建、部署服务器的时候习惯使用 Vi 或 Vim 编辑器。最近在浏览耗子哥的博客的时候,发现他对 Vim 的喜爱远超其他文本编辑器,并且包括 Facebook 在内的一些大型网站,当按下 j 键时,会向下滚动,而当按下 k 键时,会向上滚动-----这意味着 Vim 通过数字文化传播达到了难以想象的高水准。

然而,Vim 像是谜一样的存在,Vim 没有明显的发起人。尽管 Vim 很常见也很重要,但是似乎没有任何委员会或组织为 Vim 做出决策。github 上 Vim 也只有两个开发者,而且Pull Requests 也很少。
Vim 的开发者
这更加激起了我对 Vim 的兴趣,于是查找了一些相关资料。

了解 Vim 的历史,一个很好地资料是Vim 创始人 Bram Moolenaar 在 VimConf 2018 上的专题演讲,他在演讲中回顾了 Vim 的发展以及 Vim 即将添加的一些新特性。YouTube 上有该演讲视频,哔哩哔哩上有字幕版的。

简单来说,Vim 于 1991 年由 Bram 发布,最初 Vim 模仿了 Vi 编辑器的特性,后面加以扩展,逐步添加了很多新功能。今年距离 Vim 首次发布已经快要 30 年了,Vim 这个强大的编辑器仍然存在并且被许多人所使用和讨论,这也从侧面说明了 Vim 的魅力。刚开始,Vim 完全由 Bram 一个人开发维护,后面有开发者不断加入 Vim 的开发,并把 Vim 移植到了不同的系统平台上。有一段时间,Bram 甚至辞去了工作,全力投入到 Vim 的开发中,靠着网友的捐助维持基本生活。2006 年 Bram 加入了 Google 位于苏黎世的分部,Google 出于对 Bram 的尊重以及对开源文化的认同,同意 Bram 每周可以花 20% 的工作时间用于和 Vim 相关的工作,谷歌真是一家开明的公司,我本有心向谷歌,奈何配不上啊。

具体来说,得从 1966 年开始讲起。

Ken Thompson 创建了行编辑器

1966 年,贝尔实验室聘用了 Ken Thompson 。Thompson 刚刚在加州大学伯克利分校完成了电气工程和计算机科学的硕士学位。在伯克利他使用一个名为 QED 的文本编辑器,该编辑器在 1965 到 1966 年间被开发用于伯克利分时系统。

Thompson 在进入实验室后,Thompson 和贝尔实验室资深研究员 Dennis Ritchie(c 语言之父,Unix 之父),开始怀念分时系统所提供的“交互式计算的感觉”,并着手创建他们自己的版本,该版本最终发展成为 Unix。

1969 年 8 月,Thompson “给操作系统、shell、编辑器和汇编程序分别分配了一个星期”,将新系统的基本组件组合在一起。(这样我想起了开发 linux 内核和 git 的 Linus TechTips,都是大神)

这个编辑器被称为 ed 。它是基于 QED 的,但并不完全是 QED 的复现。
thompson 和 dennis ritchie 合照

Bill Joy 创建了文本编辑器

对 Thompson 和 Ritchie 来说, ed 已经足够好了。但是其他人则认为它很难用,而且它作为一个淋漓尽致地表现 Unix 对新手敌意的例子而臭名昭著。在 1975 年,一个名叫 George Coulouris 的人在伦敦玛丽皇后学院的 Unix 系统上开发了一个改进版 ed 。
George Coulouris
当时是伯克利软件发行公司(BSD)的研究生的 Bill Joy 以 Coulouris 的源代码为基础,为扩展 ed 建立了一个名为 ex 的改进版 ed。

1979 年的第 2 版 BSD 引入了一个名为 vi 的可执行文件,它只在可视模式下打开 ex 。这也就后来的 Vi。
Bill Joy

Bram Moolenaar 创建了 Vim

“Vim”现在是“改进版 Vi”的缩写,而最初代表的是“模拟版 Vi”。和其他许多“vi克隆版本”一样,Vim 始于在一个无法使用 vi 的平台上复现 vi 的一个尝试。在荷兰 Venlo 一家影印公司工作的软件工程师 Bram Moolenaar 想要为他全新的 Amiga 2000 准备一款类似于 vi 的编辑器。Moolenaar 已经习惯了在大学时使用的 Unix 系统上的 vi ,当时他已经对vi了如指掌。10 所以在 1988 年,Moolenaar 使用当时的 STEVIE vi克隆版本开始在 Vim 上工作。
Bram Moolenaar

Vim 开发模式与弊端

Vim 最初开发的年代,虽然国外已经兴起了开源运动,但是开源项目的组织与运行还不像现在这样方便,Git 和 GitHub 要在十几年后才会出现。其他开发者向 Bram 贡献 Vim 源代码的方式是通过邮件,向 Bram 提交 patch,如果 Bram 觉得这个 patch 不错,就会把 patch 加入到 Vim 的源代码中。20 多年过去了,开源项目的协作方式由于 Git 和 GitHub 的出现发生很大变化。很多顶级开源项目都选择使用 GitHub 进行代码的开发和管理,开发者通过 Git 提交 pull request 方式贡献自己的代码,如果项目的维护者觉得代码的质量 OK,就会合并这个请求,将代码并入主线代码中。

并且对于大多数用户来说,Vim有着一个比较陡峭的学习曲线。这意味着开始学习的时候可能会进展缓慢,掌握一些基本操作之后,才能大幅度提高编辑效率。

参考资料
https://jdhao.github.io/2020/01/12/vim_nvim_history_development/
https://zh.wikipedia.org/zh-hans/Vim
https://www.oschina.net/translate/where-vim-came-from?lang=eng
https://segmentfault.com/a/1190000016598055
https://www.youtube.com/watch?v=ES1L2SPgIDI

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值