Vim,一款经久不衰的文本编辑器


【编者的话】Vim 是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 VVim 则可以说是程序开发者的一项很好用的工具。本文向大家介绍下 Vim 的历史。
dd.png

当 Vim 成为了最受欢迎的 Linux 文本编辑器后,一些历史被隐藏起来。在文本文件里。通过网站和 Youtube 的视频,Vim 可以追溯至基于 unix-based 文本编辑器演化成为 Vim 的早期历史,现在仍然被广泛使用超过 40 年。

这提醒我们,在开发者社区中,我们总是站在以前来过的人的肩膀上和那些早期的计算机世界。“在那个夏天之前,我们只能用大写字母来打字,” Vim 的创始人 Bill Joy 告诉 Linux 杂志。“在那个夏天,我们赋予终端小写字母。这是非常令人激动的。”

Joy 在1976年写出了 vi,在他创建 Sun Microsystems 的 6 年前,当时他还只是一个 U.C Berkeley 的学生。在此之前,他一直使用 ed 文本编辑器,一款由 Unix 先驱,Ken Tompson 在 1969 年开发的。Thompson 自己曾经过访问 Berkeley,留下了破旧的 Pasca 系统。在 1976 年的夏天,Joy 的任务是修复它。

“ed 是令人相当失望的,” Joy 回忆。

但是那个夏天从伦敦大学,玛丽学院来了一位决定命运的特别访问者,George Coulouris,他后来在《A Quarter Century of UNIX》中描写到他们的会议。Coulouris 带来了一个 Dectape,带有他自己的文本编辑器的代码,修改了 ed,他命名为“em”——一款简化版本的普通人的编辑器”。

“我命名了它,在 Ken Thompson 访问了我们在 QMC 的实验室之后,那时我正在开发,我说:我看了那些编辑器,但是我不觉得我需要他们,我不想在编辑的时候看到文件的状态。”

在后来的几年,从他 2003 年对注册科技网站的评论来判断,Coulouris 对软件开发早期的贡献感到自豪。同时称赞 Bill Joy 将他的单行编辑器扩展为全屏编辑器,“如果我在 1976 年夏天没有在伯克利旁边的候机楼坐下来,那么 vi 可能永远不会看到光明的一天。如果我的一些代码存在于 'vi' 中,我也不会感到惊讶。”

那么接下来发生了什么呢?“我们修改了 em 并且创立了 en,” Bill Joy 告诉 Linux 杂志。与 Chuck Haley 合作,两人不断添加功能——Haley 添加了沿底线移动光标的功能,根据 Joy 在 1984 年 Unix Review 的另一次访谈——当时 Joy 还只有 20 多岁时。“Chuck 会在晚上进来——尽管我们在下午重叠,但我们确实没有完全相同的工作时间。我打破编辑,他会解决它,然后他打破它,我会解决它……”

这对组合最终从 em 到 ex 的方向努力,包含在 1978 年 3 月的 BSD Unix 的第一个版本中。这是在 BSD Unix 的第二个版本——1979 年 5 月——该程序最终以其现在熟悉的名称 vi 安装——这个名称向用户表明它是以其可视模式启动的。

传说,比尔乔伊在一个周末掀起了 vi,但是 Joy 强调 “不。其实花费了很长时间。这真的很难,因为别忘了我试图让它在 300 波特调制解调器上可用,” Joy 告诉 Unix Review。“这也是你拥有所有这些有趣的[单字母]命令的原因。它只是在调制解调器上使用屏幕编辑器。它只是勉强够快......”

到目前为止,这至少占了 vi 编写节奏的一部分。“编辑器已经过优化,因此当绘制速度比您想象的要慢时,您可以编辑并感受到效率。如今计算机的速度比你想象的要快得多,那么就没人在意了这一点了,” Joy 说。“这个世界已经灭绝了。人们不知道 vi 是为一个不存在的世界而写的。”

在 1977 年还有个插曲。 Joy 的视频终端有一个没有光标键的内置键盘——这解释了为什么 Vim 使用h,j,k和l键进行导航(尽管它现在也支持光标键)。

Sinclair Target 自 2015 年从哥伦比亚大学毕业后一直担任软件工程师,最近为他自己的 Vim 历史汇集了各自的线索。从 1969 年开始,还有其他的 ed 命令在 Vim 中存活至今。ed 也是“模态” ——意味着你必须用 i 键切换“输入”模式。 “ed 还介绍了 s / foo / bar / g 语法,用于查找和替换,或'替换',文本。”

“从根本上说,vi 仍在内部,” Joy 在 1994 年告诉 Unix Review。“你不能真的当她不存在。”

Target 提醒说在 GNU Emacs 之前的几天,安装 Emacs 可能要花费数百美元。“所以 vi 变得非常受欢迎。” 但 Unix Review 向 Joy 提出了最终的问题——他有什么不同的做法吗?“EMACS 的一个好处是它的可编程性和无模式。这是我从未想过的两个想法。”

此外,“我希望我们没有用完键盘上的所有键...... vi 的根本问题在于它没有鼠标,因此你得知道所有这些命令……”

但 vi 的第一个版本有一个更大的问题,Target 指出。“vi 是 ed 的直接后代,这意味着没有 AT&T 源许可证就无法修改源代码。这促使几个人创建了 vi 的开源版本。”该软件的名称包括 Elvis,nvi 和 STEVIE(ST Editor for VI Enthusiasts)——后来被改编成一个名为 Vim 的软件,该软件最初代表为“Vi iMitation”。 由荷兰计算机程序员 Bram Moolenaar 创建,Vim 在 Linus Torvalds 于 1991 年发布他的第一个 Linux 内核的同一年进入世界。

Moolenaar 从 STEVIE 的开源代码开始,然后添加了一些定制,根据他在 Vim 25 周年纪念日的演讲。“我做了我自己想要的所有事情,能够写出文字。” 它被分发在计算机用户群之间流传的“共享软件”的软盘上,Moolenaar 发现它出人意料地受欢迎。不久 Vim 被移植到其他操作系统的时间——MS-DOS 端口由 Juergen Weigert 编写,他也将 Vim 移植到 SunOS 和 Linux。

由于当时“还没有真正的互联网,”早期版本的 Vim 托管在他雇主的服务器上,Oce(一家销售复印机相关硬件和软件的佳能公司)。Moolenaar 还记得将第二个版本发布到 Usenet 新闻组 comp.sources.misc。 (“我想,就像 40 个部分一样,”他记得——因为大型节目必须分成几个帖子。)随着时间的推移,人们开始向 Moolenaar 发送补丁,这位 30 岁的程序员很快成为 Vim 的维护者,发布经理和终身仁慈的独裁者。Target 简洁地写道,Moolenaar “在各种互联网合作者的偶尔帮助下,为 Vim 增添了稳定的功能。”

回顾编辑的逐渐演变,Target 写道“随着时间的推移积累了好的想法。”

“我不认为'创业公司 – 抛弃所有先例 - 并创造 - 颠覆性 - 新软件'的发展方法必然是坏事,但 Vim 提醒我们,协作和增量方法也可以产生奇迹。”

Target 的网站提醒我们 Vim 已预先安装在 MacOS 中,有适用于 Windows 的版本,“对于那些讨厌它的人来说,这是很常见的,因为足够流行的命令行工具会默认将用户引入 Vim。
cc.png

Stack Overflow 首席执行官乔尔·斯波尔斯基(Joel Spolsky)曾开玩笑说,“我们用多少次帮助某人摆脱了 Vim 编辑器来衡量 Stack Overflow 的年代。” 5 月份在维也纳举行的 We Are Developers 会议上,他告诉观众“我们现在的人数已经达到了 150 万次,有人在 Stack Overflow 上看到了'如何退出 Vim',这几乎是我们最热门的问题。”

Target 指出,经过四十年的发展,Vim 已经渗透到了科技世界的文化中。“有些主要网站,包括 Facebook,当你按下 j 键时向下滚动,当你按下 k 键时向上滚动——这是 Vim 通过数字文化的传播。” 当然,Vim 在硅谷令人难忘的场景中得到了提及。

Vim 8.0 于 2016 年发布——这是 20 年来第一个新的主要版本。 2017 年,另一个受欢迎的“Vimfest”发生在柏林。

而今年 3 月的 Linux Journal 对其读者进行了调查——并得出结论,Vim 是最受欢迎的文本编辑器(获得 35% 的选票,但远远领先于选择 Emacs 的 19%,其他投票选择 Sublime Text(10%)和 Atom(8%)。

因此回顾 199 9年,当 Linux 杂志向 Bill Joy 提出一个深思熟虑的问题时,这真是令人深思:他是否知道他正在研究改变世界的事情?“不......”。乔伊强调说。

“我可能经常低估它。”

原文链接:A Look at Vim, a Text Editor for the Ages(翻译:Sam)

0 个评论

要回复文章请先登录注册