我的Vim配置

为什么写这篇文章

配置了两天的Vim,折腾到深夜,最后终于调整得比较满意。

效果图如下所示:

启动页:

效果图

工作时:

效果图

目录树:

效果图

主要功能有:

  1. vundle管理插件
  2. airline状态栏
  3. bufferline显示
  4. nerdtree文件树显示
  5. ctrlp快捷打开文档
  6. neocomplcache自动补全
  7. tagbar显示函数,变量列表
  8. ultisnips快捷方式
  9. vimshell vim下的shell
  10. vim-multiple-cursors 类似sublime的多位置同时编辑

我的Vim配置

vimrc文件可以看这里:

https://github.com/legendmohe/vimfiles/blob/master/vimrc

下面主要介绍一下几个主要的plugin的折腾过程。

vundle

https://github.com/gmarik/vundle

一开始用plugin的时候,没有用类似vundle的包管理工具,只是将autoload等文件夹拷贝到vimfiles下了事,后来由于感觉安装和删除plugin时十分麻烦,要一个个文件夹点进去删除文件,所以找到了这个插件。

安装的方法按照教程来做即可,值得注意的是,如果你要将vim配置(包括vimfile和vimrc)上传到Github来多平台同步,那么要用git的submodule来做,具体可以参考这里

与上面教程中不同的是,我在.gitignore文件中加入:

将bunde加入ignore文件是为了避免一系列的submodule的问题。

将vundle安装在vimfiles下,plugin都放在bundle里。最后目录结构如下所示:

修改完配置后正常commit-sync即可。

在另一台电脑上,只要将vimfiles clone到本地,然后在vim中执行

即可同步所有配置。另外,vundle的配置最好写在vimrc的最上部分,最好写上:

来根据不同os来更改plugin的路径。

vimproc

https://github.com/Shougo/vimproc.vim

这是一个什么插件呢?简单地说,就是让某些插件可以在后台干活(例如生成缓存,扫描文件夹),不会卡住vim的界面。另外,VimShell这个插件也依赖于这个包。

最麻烦的是vimproc要手动编译库文件,如果在windows下进行,要安装MinGW或者Cygwin,具体看plugin的README文件。

airline

https://github.com/bling/vim-airline

这是一个状态栏插件,让你的Vim瞬间变得高大上。

我的设置如下:

NERDTree

https://github.com/scrooloose/nerdtree

这个插件如果不做任何修改的话,还是可以一用的,但是会有很多不便之处,特别是在多tab同步工作的时候。

这个插件:vim-nerdtree-tabs可以令多tab的情况下nredtree同步显示同一个目录树。

ctrlp

https://github.com/kien/ctrlp.vim

就像sublime text中的ctrl-p一样,可以fuzzy地查找文件,神器。不过第一次打开时会有点慢,应该是正在生成索引的原因吧。

我的配置如下:

推荐加入历史查找功能,这样子可以替代其他与history有关的plugin了

neocomplcache

https://github.com/Shougo/neocomplcache.vim

尝试了好几个自动补全的插件,但是都太重了,依赖了很多其他的库。这个plugin速度还可以,如果有lua环境的吧,还可以用neocomplete升级版,听说会更快。

我的配置如下:

“””””””””””””””””””””””””””””” ” neocomplcache setting “”””””””””””””””””””””””””””””

Syntastic

https://github.com/scrooloose/syntastic

这是一个静态语法检查的插件,每次保存的时候它就会检查你的语法是否有错误,比较轻型,推荐。

我的配置如下:

注意的是,如果没有安装vimproc,那么开启了上面的选项以后,打开大一点的源代码时会卡住一阵子。

tagbar

https://github.com/majutsushi/tagbar

网上很多地方推荐用taglist,但是taglist太久没更新了。于是看到了这个后继者tagbar。感觉还可以。

我的配置如下:

ultisnips

https://github.com/SirVer/ultisnips

一开始用的是snipsMate,但是跟其他插件有冲突,所以换了这个。sinppets的插件有几个,这里有一个选取说明。这里有一个简单的使用简介。

vim-startify

https://github.com/mhinz/vim-startify

这个插件可以让你的vim启动的时候显示一个启动画面。十分方便。

vimshell.vim

https://github.com/Shougo/vimshell.vim

这是一个由vimscript编写成的shell壳。我一般用来将控制台的显示信息拷贝出来。另外也让你在windows下有一个比较好的shell体验。

vim-multiple-cursors

https://github.com/terryma/vim-multiple-cursors

让你的vim拥有类似sublime-text中的多位置同时编辑功能。我主要是用来重构代码,例如批量多出改变量名。

其他

其他的一些配置有:

快捷方式类:

功能类

这个功能值得一提。出处在这里,当我们写多行很类似的代码时这个功能很有用。

最后

vim折腾的过程挺有趣的,折腾完以后总想着要用它来打点什么代码来玩玩。这就是“当你手上有一把锤子的时候,看所有的东西都是钉子;当你手上有个钉子的时候,看所有的东西都是锤子 ”么?