Vim 即 Vi Improved ,在 Vi 的基础上加了诸多特性和功能。Vim 早在 1991 年就诞生了,发展至今已有 20+ 个年头,而其前身 Vi 更是早在 1976 年问世。 Vim 发展至今仍有众多拥簇,足见其吸引力和影响力之强大。对于我这样一个刚入门 Vim 的新手,我只能简单说明为何要使用 Vim:
什么是纯文本编辑器?就是不带样式、格式的编辑器。日常生活中经常使用的 MS Office Word 并不是纯文本编辑器,你所看到的文本是带格式的文本,比如文字大小是几磅,段落是否设置首先缩进等等。.doc 文件需要储存格式信息以实现 WYSIWYG (what you see is what you get, 所见即所得)。Vim 则与 Word 不同,它所编辑的是纯文本,即不带格式信息的文本;而纯文本编辑器的理念则是 WYSIWYT (what you see is what you think)。
那为什么不使用直接的 Word 而使用 Vim 呢?这里又牵扯到两种理念的不同。WYSIWYT 意味着你只需要关注文本内容本身,而 WYSIWYG 则会消耗掉你大量的时间去思考格式和样式等信息。当然你会觉得不带格式的文本并不美观,但是纯文本同样可以转为带格式的文本,比如使用 Markdown 格式书写。
Vim 有四个常用模式,分别是 Normal, Insert, Visual, Command-line 。不同模式下键盘按键有着不同的意义。比如 Insert 模式下,敲任意英文字母代表的意思是输入该字符,比如敲 o
键则输入字符 o;而 Normal 模式下,输入 o
表示在当前光标处新开一行。这样的好处显而易见,把文本的输入和对文本的操作由模式分开,提高了操作效率。试想无模式编辑器,要完成对文本的操作需要怎么做?快捷键可能是大多数选择。但是无模式编辑器在快捷键方面自然要受到更多限制,因为键盘中可供操作的按键组合相对少,且经常要辅以 Ctrl
, Alt
或 Shift
,效率相对低下。
Vim 的可定制性绝对是 Vim 的一大亮点。Vim 官网网站是提供了大量的 插件 供下载,另外 vim-scripts 也提供了相当多的插件。 IDE 的各种功能应有尽有,只有想不到,没有做不到。比如 IDE 中的“转到定义”、“转到声明”功能,可以通过配合 ctags
插件来完成。不同的文件类型,可以通过插件定义各自的语法高亮和缩进格式等等。甚至有牛人通过 VimWiki 插件搭建个人 wiki ,参见 丘迟的维基世界 。
Unix 设计哲学中的重要一点,即 KISS 原则,Keep it simple, stupid。 Vim 即是继承该原则的优秀软件,自由、透明、可定制且威力强大。不同于搭载各类功能的 IDE ,在 Vim 里,你只需要配置你需要的功能,安装你想要的插件,即可打造一套适合你自己的 Vim ,而不必在臃肿缓慢、不透明的 Vim 里进行工作。
不过值得一提的是, Vim 相对来讲并不是一个易学的编辑器。网上有人做了这么一符图,调侃起各编辑器的学习曲线,可见 Vim 的学习曲线是相当的陡峭。作为一个小白,我也在艰难地爬坡之中,希望最终能给我带来真正效率上的提升。
P.S. 原来这篇文章是想写成 Vim 入门的,但是发现其他的文档写得太好,似乎我的文章没有太多存在的必要,于是便换成了写 Vim 的作用和意义。作为新手,还并没有领悟到 Vim 的精髓之处,希望在漫长的 Vim 学习历程中慢慢感悟。