第 2 章 序言

<< 返回vim使用进阶: 目录

  从初次接触vim,到现在已经有好些年时间了。在软件开发中使用vim,不过是近两年的事情。对vim的了解远远算不上深入,不过还是把自己使用vim的一些经验写出来,希望对vim用户有所帮助。

  本系列文章介绍我自己使用vim的一些经验,主要包括vim使用技巧、vim配置、vim命令、vim插件等内容。本篇是序言,务虚为主。

  在使用vim进行软件开发之前,我使用的工具是Source Insight,相信大家并不陌生。Source Insight是一个不错的工具,特别是在浏览代码方面。在面对成百上千个文件组成的陌生源代码时,使用Source Insight可以让你很快的了解软件的主体流程、调用关系、类型定义......。使用Source Insight写代码也不错,它的自动补全功能很强,似乎使用拷贝、粘贴,加上自动补全,就可以完成代码了。不再使用Source Insight的原因有二个,一是Source Insight只支持windows,不能在Linux上用;二是不想再用盗版的Source Insight。

  在决定使用vim前,也在vim和emacs犹豫了很久,最终懒惰的天性让我放弃了emacs:实在是不习惯在移动光标时,也要用两只手按住CTRL/ALT/SHIFT再加个什么键;我的天性喜欢偷懒,能用一个手指做的事,不想用两个手指完成。所以最终选择了使用vim。现在感觉,vim和emacs在文本编辑方面不分伯仲。emacs的优势,在于它的可扩展性,使它可以完成很多和文本编辑无关的事情;不过这也造成了它的过于庞大。

  刚改用vim,最不适应的是不能再用鼠标指哪儿打哪儿了(vim当然支持鼠标,只是双手在键盘、鼠标间切换,很是影响效率),然后是拷贝、粘贴,然后是查看调用关系,函数间跳转,再然后......总之,刚开始的一段时间非常痛苦,效率也非常的低,甚至总是想着放弃。经过这段时间以后,逐渐摸到一些窍门,也渐渐的知道到哪里去寻求帮助,在哪儿可以找到vim的资源,工作效率一点点提升了上来。到现在,工作中已经离不开vim了,vim成了计算机中缺省的文本编辑工具!

  其实,对vim和emacs这样的工具来说,它们最强大之处,在于它们的可定制性。由于它们的可定制性,你完全可以定制出一个符合你自己编辑习惯的编辑器,在这样一个编辑器里,你的工作效率将达到最高。当然,要达到这样的境界,你需要付出非常坚苦的努力!如果你的工作是以文本编辑为主,例如,你是一个程序员,那么付出这种努力是值得的,也是有回报的。如果你没有很多文本编辑工作要做,那么也没有必要耗费这么大的力气,来学习这些工具。

  最后对vim的初学者提一些建议:

  1. 如果你的工作以文本编辑(不是指Microsoft word中的文本编辑)为主,那么学习vim或emacs是值得的;
  2. 刚开始使用vim或emacs的经历是很痛苦的,因为它们可能完成不同于你已经习惯的windows编辑器。我的建议是:坚持下去!咬牙坚持下去!你会获得回报的。
  3. vim手册 (help files) 是学习如何高效使用vim的重要资源,一定要多读手册。如果你是因为害怕读英文手册而不肯学习vim的话,那么,到vim中文文档下载vim 7.0的中文手册,安装好后,再使用":help @cn"命令,你就可以看到中文手册了。
  4. 如果你是第一次接触vim,那么使用":help tutor"或":help tutor@cn",你就会看到一个30分钟的vim教程,会教会你vim的一些基本命令。
  5. 有时间的话,一定要阅读一下Bram Moolenaar(vim的作者)写的Seven habits of effective text editing(七个有效的文本编辑习惯),你可以知道怎样提高你的编辑效率。在http://vimcdoc.sourceforge.net/下载PDF格式的手册,在附录二你可以看到它的中文译本。

  本系列文章都针对vim 7.0版本,如果这里介绍的功能在你的vim中不存在,不妨升级到vim 7.0后再试一次。

  我以Linux版本的vim 7.0为例。vim也有支持windows的版本,可以到vim主页下载预编译的的windows版vim 7.0。

  文章尽量不涉及具体的软件源代码,如果确实需要,则以vim 7.0的源代码为例。此代码可以也可以在vim主页下载,我把它解压在~/src/vim70目录下。后续文章以此目录为例进行讲解。

  附图是我所使用vim环境,在这副图中,我打开了三个标签页,一个是主编程区,一个是打开的.vimrc文件,另外一个是草稿区。在主编程标签页中有几个不同的窗口,分别是当前打开的buffer,当前文件中的tag,help窗口,lookupfile窗口,src/main.c和src/edit.c。其中使用了三个vim插件(plugin):winmanager, taglist, lookupfile

  从这副图中可以看出vim的一些特性:多标签支持(tab)、多窗口支持、插件支持(plugin)、语法高亮功能(syntax)文本折叠功能(folding)......这些特性,以及其它数不清的特性,我都将在后续文章中尽量给予介绍。

  上图是GUI界面的vim,下图是控制台(console)下的vim的抓图。这是我通常的开发方式:使用putty远程登录到linux服务器上,使用控制台的vim开发软件:

  对vim的了解有限,请多指教。

<< 返回vim使用进阶: 目录

原创文章,转载请注明:转载自Easwy的博客 [ http://easwy.com/blog/ ]

    本文链接地址: http://easwy.com/blog/archives/advanced-vim-skills-prologue/