Vim万能文本编辑器是如何变得受欢迎的

148 阅读6分钟

你可能听说过Vim,这个万能的文本编辑器随处可见,也是人们时常被困住的地方。 如果你从你当地的DevOps工程师那里听说Vim如何优秀和快速,你可能想过要试一试它。但是怎么会变成这样呢?Vim-craze是如何在某个时候占领了世界的?

如果我们看一下2019年StackOverflow关于最受欢迎的开发环境的调查,Vim仍然在第五位,大约有25%的Web开发者使用它。考虑到Vim的首次发布发生在近30年前(是的,你没看错,Vim首次发布是在1991年),第五名是相当不错的。

为了更好地理解Vim为什么和如何变得(以及现在)如此流行,最好是研究一下它是如何开始的根源。在vim ,有vi ,在vi ,有ed 。这些两三个字母的词是什么,背后有什么故事?让我们深入了解,弄清楚。

打孔卡和行编辑器

今天可能很明显,为什么我们有文本编辑器和成熟的IDE(集成开发环境),但在这之前我们有什么呢? 你可能知道,早期的编程形式是把带孔的纸(打孔卡)放在电脑里。你放置这些东西的顺序是非常重要的。例如,这是一张4.5兆字节数据的图片,堆积在62500张打孔卡中。想象一下,如果把这些东西丢了,又得重新分类。

好吧,妈妈,我下来了,只是需要重新堆放我的新博客文章。

随着计算机功率和存储量的增长,以及编程的发展,打孔卡被证明是有点低效的。最终,人们不再使用打卡机,然后就出现了 "行编辑 "的时代。其中一个很好的例子是ed 编辑器。让我们不要忘记提到QED编辑器ed'的前身。

使用行编辑器

如果你是在Linux或Mac OS上,打开你的终端,输入ed 。你会得到一个简单的行编辑器,它将以沉默迎接你。 如果你对这一发现感到惊讶(就像我一样),你可以试着用它玩一会儿。要写一个文件,先输入a ,然后按回车键,接着写你的文本。在回车后键入.,将退出追加(插入)模式。然后,要写一个文件,你可以输入w myfile.txt ,然后按回车,最后输入q ,然后回车退出:

# ed a Hey there! I am using ed right now, how cool. OK, that's enough. . w
myfile.txt 64 q

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

Vim的爸爸--The Vi

ed 之后,又出现了em --"凡人的编辑器"。它可以做与ed 类似的事情,但它 "不那么神秘",是为普通人建立的。基于em的代码,比尔-乔伊开发了ex ,它代表了 "扩展的编辑"!它的意义在于,ex ,除了以前的模式,还有visual 模式,它将在你的屏幕上显示整个文件。你一定在想--咄,他们怎么没有早点想到呢? 在那些日子里,让那东西在电脑上显示出来是相当棘手的,有些人认为它是资源的占用。但是,在那个时候,好处已经超过了反对意见,当你编辑文件时,在你的屏幕上打开一个文件成为今天的标准。

就这样,视觉模式诞生了。后来,在操作系统中引入了可执行的vi ,但你仍然可以通过在vi/vim 中输入: 来访问ex 命令。ex 是在1976年发布的,而vi可执行文件是在1979年发布的。这是40多年前的事了。但是,vim 是如何诞生的?

模仿的游戏

几年后,出现了许多vi 的克隆体(我最喜欢的是Elvis)。其中一个是由Bram Moolenaar创建的 "Vi Improved"--你现在在终端中试图打开vim ,就会看到这个名字。在一大批不同的vi 克隆中,vim 成功地脱颖而出。Bram使用了一个名为STEVIE (很好的名字,BTW)的vi 的克隆,并注意到它缺少许多vi的命令。他增加了一些新的功能,使其与vi 兼容,并以 "Vi Imitation"(后来改为 "Vi Improved")的名字发布。vim 这个名字出现在1993年的2.0版本中,并一直沿用到现在。但是,vim 是如何成名的呢?它在当时有一堆优秀的功能,而且与vi 。功能和兼容性吸引了很多人使用它。

半个世纪的贡献

如果你看一下在Vim中移动的基本命令。h,j,k, 和l, 这些都是源于旧的vi 的时代。比尔-乔伊当时的键盘没有光标可以移动。此外,ESC 键是在今天的TAB 键的位置。看看当年的情况吧。

替换文本的命令,如:%s/text_to_replace/text_to_replace_it_with/ ,也是那个时代的东西。必须键入: 来执行命令是对ed's完全沉默的回答,当你第一次进入编辑器时。

我想说的是,vim 是半个多世纪以来好的想法积累的努力,在向后兼容方面付出了很多努力。 是的,有用的功能可能使Vim出名。但让Vim保持在这个圈子里的是它对几乎所有你能想到的东西的兼容性。今天无论你在哪里SSH,你都可以启动Vim会话,或者至少是Vi会话。这是如今学习它的一个有力的(如果不是最有力的)理由。

如果你不是一个从一个服务器跳到另一个服务器并在上面浏览文件的人,那么到处都有Vim的意义就不会困扰你。但是,仍然有几个原因,它可能对你有价值。我正在形成一篇新的博文,解释为什么你应该在2020年学习Vim。如果你对此感兴趣,可以考虑订阅新闻通讯

最后的想法

谢谢你读到这里,我很感激。我希望这篇博文能对Vim如何成为今天的样子有所启发。我也希望这篇文章能激励你去尝试。你永远不知道什么时候你会需要它,或者你非常喜欢它,以至于你决定完全转为使用Vim。

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

说到底,就是要找到合适的编辑器(工具),使你的工作做得更好。