像之前的文章讲的,我是因为考虑要买一个HHKB键盘而决定使用VIM的,到现在已经使用有一个月了。虽然最终没有买HHKB键盘,不过学会了VIM这个也是一个让我觉得很得意的成就。现在自己很庆幸当时狠下心来学习了VIM,真的不愧是编辑器之神。
自己从毕业工作开始,使用过好几种编辑器,SourceInsight,Eclipse,UltraEdit,SublimeText,NotePad++这个单子还可以更长,这几个是自己感觉比较好的编辑器。期间也有试着学习Emacs,每次都放弃了。VIM自己一路来都在用,可是只是在需要远程简单编辑Linux上的一些文件时候用一下,VIM从来没有成为自己的主编辑器。这些编辑器中我使用最多的是SourceInsight和SublimeText。SourceInsight在看代码方面,特别是大型项目代码的时候,真的是有很大的优势,可是其编辑功能真的是太差了。SublimeText,我从看到它的第一眼就喜欢上了,可能是因为它的配色很和自己的胃口吧。自己特别喜欢SublimeText的Ctrl+P功能,Ctrl+D,多选功能,Column Edit,Per Project Setting。还有就是它选择丰富的插件系统,因为其插件支持Python,插件开发变得相对容易。还有就是其跨平台支持,这些有优点让SublimeText出道不到几年已经变成一个十分流行的编辑器,自己这次转换到VIM,在选择插件的时候就是参考了已经习惯的SublimeText来做选择,只有在VIM里面基本实现了日常开发需要的功能,才能够抛弃别的编辑器,100%使用VIM。
使用VIM,就是要全键盘工作,在编辑代码的时候抛弃鼠标,要想实现高效的浏览和编辑,定制自己称心容易记的组合键是必不可少的。你可以轻易的在网上找到别人的VIM配置,自己加以借鉴修改成适合自己的配置。自己的VIM基本配置一开始就使用没有修改过的The ultimate Vim configuration (vimrc) 只是插件从一开始我就选择自己要用的。在使用过程中,再慢慢修改到自己喜欢的配置。慢慢的,你的VIM配置就十分完整了。
VIM的学习曲线相对于除Emacs外的编辑器是很陡的,可是你一旦掌握,你就真心会喜欢上VIM,你就恨不得所有的日常使用程序都想要VIM的Key Binding。实际上学习VIM跟学习任何别的软件或者编程语言一样,没有什么捷径,唯一的途径就是使用,让自己天天使用,强迫自己只使用VIM,遇到问题就Google一下,找打解决办法。以我自己的经验来讲,当我强迫自己只使用VIM来做工,只用了一个礼拜,自己就很习惯使用VIM了。
对于一个代码编辑器来讲,最重要的几样功能只要实现了,就基本上是一个可以使用的编辑器了,高级功能是要在实际需要的时候再学习的。因为我是做C编程的,而且项目比较大,光C代码文件就有1万多个,所以,以下几样是我认为不可少的几样功能:
- 代码跳转,跳到定义地方
- 快速代码查找,在整个项目的所有文件内查找
- 漂亮的代码显示
- 自定义组合键
- 丰富的扩展性 (加入特有的编译构建系统,或者特有的外部命令)
- 项目管理,或者对不同的文件夹进行不同的设定 (Per Project/Dirctory Setting)
- 快速打开文件
- 基本的代码补全提示(对于大型项目真的是实用的)
SublimeText对于上述的功能都有很好的实现,而且SublimeText也还有Vim的KeyBinding。可是自己对于这种混杂的Key Binding不是很习惯。在习惯了Vim后,虽然Vim没有实现所有我喜欢的SublimeText的功能,我还是果断的选择了Vim。
对于我选择的插件和我选择的Vim Key Binding我会再另外写一个blog来讲述。希望有更多的Programmer跟我一样,最终选到一个自己十分喜欢的编辑器,不管是Emacs还是Vim,还是别的,只要你真的喜欢,并且能完成你需要的所有功能,那就用它吧。