今天说一个古老的话题,VIM作为一个编辑器,香么?
初见
Stack Overflow上有两个问题常年高居热门榜,那就是"我要怎么在VIM内编辑"、“我要怎么才能退出VIM”。
这也是我初次使用VIM的感受,linux无UI的黑框框对新手小白已经很不友好了,这破玩意儿编辑器用起来也这么反人类,是闹哪样的?就不能好好的,开箱即用,打开就能编辑,最多加一个保存,一个撤销复用功能,然后用exit或者ctrl+c退出,不就完了么?
“吾不笑别人,单笑乌班图无谋,红帽少智…”(狗头)
最诡异的莫过于,你嗤之以鼻的东西,网上冲浪见到的大佬们都觉得香。错的是我,还是世界?
认识VIM
话不多说,接入正题,如何正确的使用VIM?这部分就是想从一个VIM中级使用者的角度,缓缓揭开VIM的使用真相。
1. 历史与基本原则
理解了VIM的使用原则,是使用的第一步,之后遇到新的快捷键,也会很快上手。
首先明确一点,VIM的使用前提是全键盘操作,上古时代,没有视窗操作系统,操作全凭手打,这是VIM诞生的背景,使用者能盲打是提升VIM使用效率的第一步。对于个人而言,如果不适应无鼠标的工作,那么VIM的存在会很膈应,使用哲学上就是和个人习惯相悖的。
要认识现在,先了解过去,一起看看VIM和它的祖爷爷们的历史:
- 1966年,QED(Quick EDitor)编辑器诞生,那个时候没有显示屏作为显示终端,所谓的终端就是把一行信息打印到纸上的打印机,所以QED诞生的时候,就是一个行编辑器,操作时,需要手动指定更新内容和范围;
- 1969年,当时大名鼎鼎的AT&T内诞生了基于QED的ED编辑器,
- 1976年,em(Editor for Mortals)诞生;
- 同年,加州大学伯克利分校的研发人员在em基础上开发出了ex(Extended);EX是最后一代行编辑器,
- 再后一年,VI(visual interface)诞生,vi最大的变化就是可视化的编辑,摒弃了过去的行编辑模式,人们终于可以在终端上看到整个文本了,
- 这之后,编辑器届的发展一度很喧嚣,针对VI的改进版本层出不穷,直到1991年,VIM的第一个版本才正式发布,VIM的取名源自Vi IMproved。目前VIM已经发布到第八个正式版本,也就是VIM 8。
我们今天使用的一些命令,都可以看到它祖辈们的影子,比如hjkl
用来移动光标,比如ex
目前都还是内置的行编辑命令,命令行模式也被叫做ex模式,不经意间透露出“忆往昔峥嵘岁月稠”的沧桑,那是计算机萌芽期留下来的活化石。也从侧面反映,今天VIM的样子,是经历过数十年码农的悉心调教后,长成的模样,每一个使用细节的背后,必然有其设计的理由,试图理解这里面的逻辑,也会别有洞天。可以记住这句话:VIM能以与思考同步的速度编辑文本。
除了上面列的几点,祖辈们给VIM留下的最大的特点是:编辑器的模式。
所有新手小白对于VIM的愤怒,都来自于对模式的不了解。 ——鲁迅
打开文件,默认是普通模式,我们只能读文件,不能插入新内容,要直接写文件,需