这篇文章记录我的 VIM 配置,包括带注释的配置文件 .vimrc
,和几个很好玩的插件。
VIM 可以依照个人习惯进行很多有趣的配置,因此每个人的配置多多少少都不太一样,这也是这个编辑器的强大与灵活所在。
我在配置自己的 VIM 时,也是参考了许多其他人的配置文件,再依照自己的使用习惯增删修改。
因此虽然网上已经有很多配置 VIM 的文章,我也不介意增加一篇,希望本文的内容能够成为众多有价值的参考之一。
正文
从开始用 Linux 就与 VIM 结下不解之缘,到现在差不多有三四年了,VIM 已经成了自己学习工作不可或缺的工具。 不过虽然使用时间很长,但是我基本上一直是在使用 vim-enhanced 的基本功能,加上一些简单的配置选项,最多试验过 ctags 之类的插件罢了。 我一直觉得 VIM 本身就已经够强大,并且很享受那种在代码中间跳来跳去,对缓冲、行、块、单词、字母的操作得心应手,以及头脑还没意识到手上已经敲完了一串快捷键的感觉, 各种补齐、高亮以及自动缩进的功能也让我对 VIM 爱不释手。我猜也会有很多 VIM 用户和我一样,会在任何编辑文本的地方不自觉地猛按 Esc,会尝试把许许多多其他工具变成 VIM 风格, 譬如 Firefox,譬如 Chrome,譬如 MS Word,譬如 Eclipse ...
VIM 配置文件
前一阵子在一个朋友的提醒下,我也整理了一下自己的 .vimrc
。除了原有几行配置之外,还参考了很多手册、配置样例,增加到现在的样子:
上述配色方案 murphy 可以在 /usr/share/vim/vim73/colors
中找到,当然你也可以在这里挑选使用你喜欢的其他配色方案。
插件
VIM 的插件库很丰富,这里只是介绍几个我正在使用的小插件。
Conque Shell
现在的显示器都个顶个的大,相信很多朋友也会像我一样,在写代码时候喜欢把终端开为全屏。全屏写代码,也免不了会使用窗口 split 的功能,一次开很多个源文件互相参考。
一般来说,如果写代码时需要执行一些 Shell 命令,较简单的的命令可以使用单行模式下的 !
或者 !!
的功能来执行,较复杂的命令也可以使用 :sh
打开一个 Shell 来执行。
其实,VIM 既然可以开多窗口,为什么不在屏幕上专门开一个窗口作为 Shell 呢?这样根本就不需要离开编辑器的界面,就可以随意敲命令了。
幸运的是,实现这个功能的插件已经有了,它就是 Conque Shell。 其实上面描述的仅仅是 Conque Shell 的一个功能,这个插件的功能是让用户可以在 VIM 的一个 Buffer 里,执行诸如 Bash、Python 之类的交互性程序。 其实上面这些 Conque Shell 的功能也可以用 Screen 来代替,只是目前我还没有把 Screen 整明白。
关于 Conque Shell 的详细使用说明,在其 Google Code 页面上很详细。
我经常用到的两个命令是 :ConqueTermSplit bash
或 :ConqueTermVSplit bash
,类似 :new
和 :vnew
,它们会在我的编辑窗口旁边(横向或纵向)打开一个新的窗口,
不同的是这个窗口里是一个 Bash Shell。
当然,其中的 bash
也可以用 python
或者 mysql -u username -p password
之类的命令来代替。总之很酷就是了,效果见下图,右下角的窗口就是 Conque Shell 打开的 bash:
有一点遗憾的是,这个插件与我在 .vimrc
中配置的自动保存设置(上述代码中最后注释掉的部分)有冲突。
Conque Shell 为它打开的 Buffer 设置了 buftype,禁止写操作,因此离开 Insert 模式后自动写的操作会报错。
我查了很久资料,试过为 if 语句加上 filewritable()
判断,但是看起来 autocmd 是在 VIM 打开时一次性设置的,只要打开一个可写的文件,再打开的所有窗口就都会尝试保存。
现在为了 Conque Shell 把自动保存暂时禁用掉了,其实我按 :w
已经有点神经质,也可以算是半自动保存了o(∩∩)o...
Code Complete
这也是一个很酷的插件,虽然我用到的机会不多,但是很有趣。Code Complete 是那种可以让程序员偷点懒的插件,正如插件插件官方网站所述,
它会自动帮你补齐一些常见的代码结构。
我也没必要做一个 GIF 动画专门演示它的功能了,你只需要装上这个插件,然后新建一个 .c
文件,输入 main 然后按 Tab 键,见证奇迹的时刻就又来了。
VimRepress
喜欢使用 VIM 的 Wordpress 用户,相信一定不会错过这样一款有爱心的插件。在 VimRepress 之前还有一个 VimPress,只是这个插件自 2007 年就没有更新了, VimRepress 的作者于是自己发布了这个新插件。 论功能,VimRepress 也许只是另一个 Wordpress 的离线编辑器罢了,但是和 VIM 结合起来,你的任何 VIM 编辑习惯都可以拿来写 Blog,很酷吧?
这个插件安装后,可以在你的 .vimrc
中配置一个叫做 VIMPRESS 的变量,包括你的 Wordpress 用户名、密码和 URL,上面我的配置文件第一行就是一个例子。
当然如果不配置密码,VimRepress 会在连接时要求你输入密码。
具体插件的使用,大家参考官方网站的文档就可以了,在这里赘述无益,我就请大家看看截图好了: