[url=http://www.vim.org/scripts/script.php?script_id=2332]pathogen[/url]很强大,要理解它的强大,需要先回顾下通常的插件安装方式。我们通常会将vim的所有插件一股脑地全部放在.vim下,插件A和插件B的plugin,doc等目录都混在一起,.vim/plugin既包含plugin-A.vim也包含plugin-B.vim,.vim/doc下既包含plugin-A.txt也包含plugin-B.txt,这样带来的后果是卸载插件很麻烦,很难弄清楚哪些文件属于哪个插件 。
pathogen仍然是将所有插件放在.vim下,但每个插件各自分开,保持自己的目录,插件 A的所有文件都放在.vim/bundle/plugin-A目录下,插件B的所有文件都放在.vim/bundle/plugin-B目录下。删除插件就是删除目录,非常简单。
将pathogen.vim放在.vim/autoload下,然后在.vimrc中最前面加入下面三行:
注意:需要加在最前面,因为pathogen是插件之王,用来管理其它插件。
我原以为pathogen会提供方法只激活单个插件,却竟然没有提供,这应该是个很常见的场景。有时候插件不像预料的那样工作,我就会怀疑是不是其它的插件影响到它了,使用pathogen,可以将bundle下的其它插件临时移到另外目录下,测试之后再移回来。这样虽然比不使用pathogen要容易许多,但也麻烦,在查看pathogen源代码之后发现,它只不过是修改了runtimepath选项,所以可以通过直接修改runtimepath达到上述目的:
上面的代码就只激活了插件minibufexpl。如果插件包含了after目录,也要将它添加到runtimepath中,只是要添加到末尾。
pathogen仍然是将所有插件放在.vim下,但每个插件各自分开,保持自己的目录,插件 A的所有文件都放在.vim/bundle/plugin-A目录下,插件B的所有文件都放在.vim/bundle/plugin-B目录下。删除插件就是删除目录,非常简单。
将pathogen.vim放在.vim/autoload下,然后在.vimrc中最前面加入下面三行:
filetype off
call pathogen#runtime_append_all_bundles()
filetype plugin indent on
注意:需要加在最前面,因为pathogen是插件之王,用来管理其它插件。
我原以为pathogen会提供方法只激活单个插件,却竟然没有提供,这应该是个很常见的场景。有时候插件不像预料的那样工作,我就会怀疑是不是其它的插件影响到它了,使用pathogen,可以将bundle下的其它插件临时移到另外目录下,测试之后再移回来。这样虽然比不使用pathogen要容易许多,但也麻烦,在查看pathogen源代码之后发现,它只不过是修改了runtimepath选项,所以可以通过直接修改runtimepath达到上述目的:
filetype off
let &runtimepath=$HOME."/.vim/bundle/minibufexpl,".&rtp
"call pathogen#runtime_append_all_bundles()
filetype plugin indent on
上面的代码就只激活了插件minibufexpl。如果插件包含了after目录,也要将它添加到runtimepath中,只是要添加到末尾。
let &runtimepath=$HOME."/.vim/bundle/snipMate,".&rtp.",".$HOME."/.vim/bundle/snipMate/after"