vim(vi improved)是一款功能强大并且高效的文本编辑与文本查看工具,算得上是Unix/Linux中的上古神器。vim特有的输入模式,可以通过全键盘操作完成各种编辑工作。现在的我算是一个初级的vim党,在Linux下完全使用vim;而在Windows下一般也会使用GVim作为编辑工具,阅读代码会使用SourceInsight+GVim。

       vim的高效是对熟练应用vim的人来说的,例如在写代码时,一开始将某个库函数xxx_destroy函数写成了xxx_destory(我经常会将destroy写错)。当make编译时,发现显示当前文件中未定义xxx_destory,仔细检查发现函数名写错了,此时只需要打开文件在命令模式输入":%s/destory/destroy/g",就可以将该文件下所有的函数名修改正确。但是对于刚接触vim的初学者来说,vim是“极其不友好”的,难以记忆的命令以及复杂的操作方式。虽然vim对于初学者来说,掌握起来需要一段时间,但当你真正的熟练运用vim时,你会发现假如没有vim,编辑文本简直太难受了。

       那初学着来说如何学习vim呢?在我看来对于vim使用者可以分为三个阶段:入门级,初级和高级(三个阶段使用vim进行编辑时的效率如下图)。

vim1

       在入门阶段,你会发现使用vim时效率并没有一般的编辑器高,并且花费了一段时间效率也并没有多少提升。原因是与一般的编辑器相比,vim并不提倡使用鼠标(即使通过设置可以支持一些鼠标操作),并且vim中有一些基本的命令以及基本的操作需要熟练,因此你需要花费一段时间进行肌肉练习。具体的方法分为两方面进行:一方面你需要每天坚持花费20分钟左右的时间练习vimtutor(vim的操作指导,在linux中装好vim后,输入命令vimtutor就会打开),每次从头开始进行操作,通过练习,使每次完成一次所有练习的时间逐渐减少;另一方面在平时的编辑文本或代码时坚持使用vim。当你可以使用不加思索的使用“hjkl、iI、oO、cw、x与dd、gg与G、vyp等”常用的命令时,就完成了入门阶段练习。

       在初级阶段,就需要配合使用一些简单的插件了并且要开始学会配置。使用这些插件可以更方便的进行文件的操作,如MiniBufExplorer、taglist、winmadager以及ctags,通过这几个插件可以更加方便的编辑和阅读文本(代码)。关于插件的安装,是非常简单的,在网上插件下载成功放到指定的路径就可以了。而vim的配置,只需要更改.vimrc中的内容,具体如何配置,一方面根据自己的喜好,如是否默认显示行号,TAB键用几个空格表示等待,另一方面也需要根据你自己使用的vim插件来配置。因为vim的插件是类似脚本文件与系统无关,并且配置文件中的内容大部分也是与系统无关的,这样可以很方便的完成Linux下的vim和Windows下的GVim插件的安装以及相关的配置(我所使用的插件与相关配置已经push到了github上)。

Linux下的vim: vim2

Windows下的GVIM: vim3

       接下来是高级阶段了,这也是我当前要努力的阶段,在该阶段时,一些编辑修改,可能需要许多命令和步骤完成,此时就要考虑如何选择使用一种更简单的方式完成。另外可以找一些相关的书籍进行学习,例如“Practical Vim: Edit Text at the Speed of Thought”,书中详细描述了一些高级的操作。当然找一些更加适合自己的插件也是必不可少的。鉴于目前个人水平有限,对于该阶段就不多谈了。

       vim的强大之处是需要你不断去学习体会的,而当你真正地熟悉vim后,相信你会喜欢上它。