这篇日志,我想分享一下伴我写代码的一些vim插件。
也许很多其他的同仁已经分享过一些自己的利器,但是每个人的装备毕竟会不一样嘛,呵呵
更新
我把我现在使用的一些配置文件都放到了github上https://github.com/alexandnpu/dotfiles.git
其中也包含了我使用的tmux的配置
1. Pathogen 或者是 Vundle
Vim插件管理工具,就是可以让你的vim插件管理更高效,不用把vim插件凌乱的放置到.vim/plugin文件夹下面,而是通过每个插件一个文件夹放在.vim/bundle/xxxplugin下面。这样,但你需要删除某个插件的时候,直接把那个xxxplugin文件夹删掉就可以了(其实,就我个人使用下来说,也就是当你发现一个插件,想试用的时候比较有用;如果试用下来合你的心意你就留着,当你觉得不好,就直接删掉。但是,大部分情况下,我还是都保留了我选择的插件)。
个人还是比较喜欢用pathogen的,虽然Vundle提供了更丰富的功能,但是我感觉pathogen提供给我的功能足够我使用了。至于更新功能,只有当自己真的有特别需要更新的时候才去vim.org或者github上去找更新,其他更多时间够用就好。
Pathogen:https://github.com/vim-scripts/pathogen.vim
Vundle:https://github.com/gmarik/vundle
2. taglist& tagbar
taglist自然不用说,应该很多人都介绍过,就是函数列表了,用过notepad++的用户,一定知道那个function list。需要说明一点的是,这两个插件都是需要ctags来配合的,所以请务必确认你使用的机器上也安装了ctags。
如上图,这个是一个cpp文件,可以看到,它清楚了列出了各个函数还有一些成员变量,在后面还列出了他们所属的类。
Taglist好是好,特别是针对C。但是对于c++,java等一些面向对象语言,我觉得还是需要tagbar来配合,tagbar的呈现方式更接近UML的方式。
从图中(这个是个头文件)可以看出,共有成员或是变量前面都有+号,私有的都是-号,而且对于只有声明没有定义的函数都在prototypes下,有了定义的函数就放到了functions下,members一栏自然是要放它的成员变量了。
所以这两个插件相补充,可以让你看代码更迅速。
Taglist:https://github.com/vim-scripts/taglist.vim
Tagbar:https://github.com/majutsushi/tagbar
3. MRU(MostlyRecently Used)
顾名思义,这个就是可以列出你最近使用过的文件。如果你用的是gvim的话,它还会在你的file菜单中添加一个菜单项,但是我还是主要适用vim的。
MRU:https://github.com/vim-scripts/mru.vim
4.easymotion
Vim的快捷键真的是很多,很多区块跳转的快捷键自己真的记不住,有的时候还真的就是用上下左右来把光标移动到想要去的位置。知道遇到这个插件,快速移动光标的任务就交给easymotion啦,很酷的哦。
看到了吧,当你适用easymotion的时候,它会自动帮你标注出每个单词的其实位置,这个时候只要你选择相应的字母,光标就会跳到那个单词,很快的哦!!
Easymotion:https://github.com/Lokaltog/vim-easymotion
5. locate
就像作者在它的介绍中说的,The :lvimgrep you'vealways dreamed of. 是的,我觉得他的确做到了。在当前文件中查找,的确是我们经常使用的功能,特别是当你修改代码的时候,这样可以确保你没有遗漏掉你要改动的地方。还有另外一些各种各样的user case我就不多说了。
Locate:https://github.com/mtth/locate.vim
6. Mark
在接触到linux之前,俺是使用windows的。那个时候看代码,使用的sourceinsight。看代码的时候,使用最多的就是那个shift+F8,高亮某一个关键字;但是经常的需求是你需要同时高亮好几个关键字,而sourceinsight确只能用同一种颜色来高亮关键字,有的时候必须很好的区分这个高亮下面到底是哪个关键字。后来使用了linux+vim,这个问题同样碰到,好在强大的hacker们开发出了Mark这个插件,可以用不同的颜色高亮不同的关键字。超爱这个插件,每天都会用到它。如下图,看,小伙伴们,知道它的威力了吧!
Mark:https://github.com/vim-scripts/Mark--Karkat
7. tabular
好的代码格式,会让你的代码看起来更赏心悦目,而且在调试的时候更舒服。而tabular就是这样一款可以让你做文本对其的插件。这个我就不多做介绍了,有个视频大家可以看http://vimcasts.org/episodes/aligning-text-with-tabular-vim/,而且后面还有很详细的使用介绍。
Tabular:https://github.com/godlygeek/tabular