Vim是怎么变得这么受欢迎的?

2020-07-01 06:35:33

你可能听说过Vim,这个无所不能的文本编辑器无处不在,人们时不时会被困在这里。如果你从当地的DevOps工程师那里听到Vim是如何优秀和快速的,你可能会考虑试一试。但是事情怎么会变成这样呢?Vim-Craze是如何在某个时候接管世界的?

如果我们看看StackOverflow在2019年关于最流行的开发环境的调查,Vim仍然排在第5位,大约有25%的Web开发人员在使用它。考虑到Vim第一次发布是在大约30年前,排名第五已经相当不错了(是啊,你读对了,Vim第一次发布是在1991年)。

为了更好地理解Vim为什么(以及如何)如此受欢迎,最好研究一下它是如何开始的。在vim之前有vi,在vi之前有ed。这两三个字母的单词是什么,它背后的故事是什么?让我们潜入水中找出答案。

今天我们为什么有文本编辑器和成熟的IDE(集成开发环境)可能是显而易见的,但在此之前我们有什么呢?正如你可能知道的,早期的编程形式包括将带孔的纸张(穿孔卡片)放入计算机。你放这些东西的顺序是非常重要的。例如,这是一张4.5兆字节数据的图片,堆叠在62500张穿孔卡片中。想象一下把它弄掉,然后不得不重新分类。

随着计算机能力和存储空间的增长,以及编程的发展,打孔卡被证明有点低效。最终,人们不再使用穿孔卡片,于是出现了“行编辑”时代。这方面的一个很好的例子是ed编辑器。我们不要忘了托马蒂QED编辑,他是埃德的前任。

如果您使用的是Linux或Mac OS,请打开您的终端并键入ed。您将得到一个简单的行编辑器,它会默默地迎接您。如果您对这个发现感到惊讶(就像我一样),您可以尝试一下它。要写入文件,请开始键入a并按Enter,然后写入文本。按Enter键后键入.将退出追加(插入)模式。然后,要编写文件,可以键入w myfile.txt并按Enter,最后写入q并按Enter退出。

正如您可能注意到的,使用ed和使用今天的vim有相似之处。如果你使用Vim,你可以说你很快就会掌握ed漂亮的诀窍。

在ed之后出现了em,也就是“凡人编辑器”,它可以做与ed类似的事情,但它“不那么神秘”,是为普通人打造的。基于em的代码,Bill Joy开发了EX,它代表“扩展的ed”!这一点很重要,因为EX除了具有以前的模式外,还有视觉模式,它将在您的屏幕上显示整个文件。你一定在想-嗯,他们怎么没早点想到呢?那个时候让那个东西出现在电脑上是相当棘手的,有些人认为它是一种资源浪费。但是,在这一点上,好处超过了反对意见,在你编辑文件的同时在屏幕上打开一个文件已经成为今天的标准。

就这样,视觉模式诞生了。后来,操作系统中引入了可执行文件vi,但是您仍然可以通过键入:in vi/vim来访问ex命令。前任于1976年获释,可执行文件于1979年获释。40多年前的事了!但是,VIM是如何复活的呢?

几年后,出现了许多vi克隆人(我最喜欢的是猫王)。其中之一是“ViImproven”,它是由Bram Moolenaar创建的-当您尝试在终端中打开Vim时,您现在可以看到这个名称。在众多不同的vi克隆中,vim成功脱颖而出。Bram使用了一个名为Stevie(nicename,btw)的vi克隆,并注意到它缺少许多vi的命令。他添加了一些新特性,使其与vi兼容,并以“Vi改进”的名称发布。Vim这个名字在1993年的2.0版中出现,一直保持到现在。但是VIM是如何成名的呢?它在当时有很多优秀的特性,并且与vi兼容。特性和兼容性吸引了很多人使用它。

如果您看一下在Vim中移动的基本命令:h、j、k和l,这些命令都是从以前的vi开始的。比尔·乔伊那个时候的键盘没有光标可以移动。此外,Esc键取代了今天的TAB键。让我们来看看它在过去的日子里是怎么回事:

用/替换文本的命令:%s/text_to_place/text_to_place_it_with也是那个时代的东西。不得不打字:执行一条命令是对你第一次进入编辑器时埃德完全沉默的回答。

我想说的是,Vim是半个多世纪以来积累的好点子,在向后兼容方面投入了大量精力。是的,有用的特性可能使Vim出名。但是,使Vim保持在循环中的是与您能想到的几乎所有东西的兼容性。现在,无论您在哪里使用SSH,都可以启动Vim会话,或者至少启动Vi会话。这是当今学习它的一个很强的(如果不是最强的)点。

如果您不是那种从一台服务器跳到另一台服务器并在那里导航文件的人,那么让Vim无处不在并不会让您感到困扰。但是,仍然有几个原因可以解释为什么它对你来说可能是有价值的。我正在撰写一篇新的博客文章,解释为什么你应该在2020年学习Vim。如果你对此感兴趣,可以考虑订阅时事通讯。

谢谢你读到这里,我很感激。我希望这篇博客文章能阐明Vim是如何成为今天的样子的。我也希望这篇帖子能激励你去尝试一下。您永远不知道什么时候可能需要它,或者您非常喜欢它,所以决定完全使用Vim。

也许您的IDE或VSCode中会出现Vim模式,谁知道呢。我并不是说Vim应该取代您现在使用的东西,但是尝试学习和配置它会提高您的技能和能力。另一方面,你使用什么编辑器并不重要,重要的是你用它做了什么!

归根结底,找到合适的编辑器(工具)才能让您做得更好。

如果你喜欢这篇博文,你可以在下面与你的朋友和同事分享:

我刚刚发表了一篇新的博客文章,介绍Vim的历史以及它为什么会流行起来。此外,还有一个关于为什么可以使用h、j、k和l在Vim中四处移动的原始故事。请查看https://t.co/S3p50cgYPW⏬。

-尼古拉ĐUza(@nikolalsvk)2020年6月30日。

作者尼古拉·鲁比(NikolaĐUza)在诺维萨德生活和工作,他用javascript和ruby构建了令人惊叹的东西。你可以在推特上关注他。

只有当有新内容发布时,我才会给您发送电子邮件。没有垃圾邮件。随时取消订阅。