江湖传说linux下最强的编辑器emacs与vim一直相持不下,很难分辨谁强谁弱,但对于个人来说最强大并不表示最适合,选择一款适合自己的编辑器,才是硬道理。所以本人选择了vim。
学习vim之前先要有个心理准备。为什么?网上有个主流文本编辑器的学习曲线,知道vim的曲线是怎么样的吗?请看下图。
陡峭的学习曲线吓跑了不少人,因为要使用好vim,需要了解一堆命令,但一旦你熟练掌握了这些命令,你便会觉得他的伟大并因此而爱不惜手,这就是vim的学习曲线如此的原因。(ps:大家不必被这陡峭的折线吓着,这估计是画图的人故意夸大的做法)
网上有一篇简明的vim练级攻略,个人觉得很有用,尤其对于初学者,故贴出来给大家参考,详细地址为http://coolshell.cn/articles/5426.html,个人建议先到这个网站上学习,再看以下内容。
Vim之所以强大,除了上述一堆好用的命令外,还因为它有丰富的插件,足可以把vim打造成linux下的source insight,媲美甚至是超越windows下的IDE。
在这个有图有真相的年代我们还是想来张图吧:
根据上图,左上角是浏览器,可以浏览打开磁盘的文件,左下角是taglist,在查看代码时列出了正在打开的这个文件里的相关信息,例如marco,struct,typedef,variable,function等等,就像是source insight里查看代码般方便,正在编辑代码有时有自动提示功能。顶部有tag方便多文件打开和切换。总结起来,经过配置后的vim具有如下功能:
1. 类似于source insight的代码阅读,函数跳转功能
2. 编写代码的自动提示功能
3. 多文件打开用tag形式切换
4. 工程内关键词搜索功能(需安装cscope)
5. 方便的注释功能
6. 点C文件和点H文件的自由切换
本人使用的相关插件和配置文件已上传到github,到https://github.com/gavinlin/my-vim可以下载,放在~目录里就可以了,其中cscope需要自己编译安装
用到的插件如下
1. NERD_commenter注释用
2. NERD_tree文件浏览器
3. a.vim c文件和h文件相互切换
4. acp 自动提示
5. minibufexpl 顶部的tag切换
6. supertab 按tab弹出代码提示
7. taglist 显示文件相关函数等显示用
8. winmanager 分割屏幕管理用,界面切换用
9. cscope 整个工程搜索关键字
还是推荐读者自己配置vim,这才能打造适合自己的编辑器,顺便可以熟悉.vimrc的各种配置选项,推荐一篇文章