初探 Vim 插件

本文主要想说关于vim plugins的一些事情,但是我这两天突然开始大搞这个东西是事出有因的,于是就先简述一下事情的背景。
昨天去图书馆借了本书,《Git 权威指南》,于是就看得津津有味的。也发自内心觉得 git 着实强大。当然如果有时间的话,我也会整理些 git 的读书笔记发博文中。也正是看了些 git 的东西,不由自主也就想起了之前尝试装 vim-powerline 的情景。虽说用 AUR 很容易就装上了 powerline,但是它竟然要求 vim 在编译时支持 python 才行的。而常年用 Arch 用出强迫症的我是绝对不能接受在 Arch 源中有 vim 的情况下还要再编译安装一个新 vim 的。而 Arch 自带的 vim 又很不幸没有 complied with python。因此之前尝试装 powerline 也就给作罢了。

好,废话就说这么多,下面开始正文,先来一段记叙文:

今天上午起床后,或许因为昨晚看了《Git 权威指南》而启发思维的缘故,我突然想到了一个问题:像 Arch 这么牛逼的发行版,怎么可能源里没有 vim complied with python 存在呢?于是就翻遍 http://package.archlinux.org/http://wiki.archlinux.org/,终于在 vim wiki 里发现了这么一段话Note: The vim package is meant to be as lightweight as possible; hence, it does not support Python, Lua, and Ruby interpreters, nor does it support X server options (this means that it will not support copy and paste from the X clipboard). If you require these options, install the gvim package instead (it includes the vim binary as well).于是果断装 gvim 来取代 vim。启动下 vim 一看,powerline 赫然在目。

记叙完了开始说明文:
今天给 vim 装了这些东西:

总体效果如下:

安装方法很简单,这里我就不再赘述,下面只想记两个网上不容易找到的两个小问题。至于 .vimrc,我已发在 https://github.com/xwyam/config/blob/master/vimrc

问题一、powerline 字体问题

一般来说,powerline 的安装脚本会搞定很多工作,但是如果系统本身的字体设置出问题的话,powerline 也是没有超级牛力的。如果装好 powerline,配置好 .vimrc 文件,但是启动 vim 后发现 powerline 并没有箭头,而出现在箭头位置的是乱码的话,那么这就有可能是系统字体设置的问题了。
此时需要修改系统设置文件,通常字体配置文件会是~/.fonts.conf~/.config/fontconf/fonts.conf的,但是如果您的系统设置比较出众一些,那就烦请您自行找一下配置文件的位置。
在配置文件中找到 monospace 的字体族,在第一个字体前添加PowerlineSymbols。重启 X 后再试着打开 vim 看看,一般来说应该就没有问题了。但是如果这样还解决不了您的问题的话,那只好请您另找高明了。

问题二、taglist 的Tlist_Use_Right_Window属性

taglist 默认Window行为是这样的,如果当前窗口撑满屏幕了,taglist 的 window 会挤压 vim 编辑区域的空间,如果当前窗口没有撑满屏幕,则 taglist 的 window 会向外侧扩展。
这本是个不错的没想,但是这要求 vim 所在的窗口可以自动扩展才能将“伸出”的 taglist 新区域显示出来。据本人已知的情况,Gvim, Gnome-terminal, xterm, Cygwin 都是没有问题的,但是 konsole 和 yakuake 这两个 KDE 软件显然就没那么听话了。这两个软件不会根据内部 vim 的大小改变来自动调整大小,那么想把 taglist 放在右边的话,就需要改taglist.vim中的内容了。
打开taglist.vim文件,(如果不知道taglist.vim文件位置,烦请自行查找,因为一般情况下,这个文件的位置是用户自己确定的。。。。)并找到Tlist_Window_Create函数,然后向下找到类似这样的语句:

if g:Tlist_Inc_Winwidth &&
      \ &column < (80 + g:Tlist_WinWidth

if后边跟的这两个条件改为0,保存后重启 vim。再开启 taglist,新 window 就会出现了。

添加新评论