模块化vimrc:如何从不同文件中获取vundle插件

时间:2014-09-13 21:21:38

标签: vim plugins modular vundle

我想在不同的组件中分解我的vimrc。我使用Vundle管理我的vim插件,我希望每个插件有一个文件告诉vundle管理它并设置如下配置:

vundle.vim:

set nocompatible
filetype off 
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
"Plugin in here:
Plugin 'gmarik/Vundle.vim'
call vundle#end()
filetype plugin indent on
"Plugin Options:

和 syntastic.vim:

set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
"Plugin in here:
Plugin 'scrooloose/syntastic'
call vundle#end()
filetype plugin indent on
"Plugin Options:
" - Python:
let g:syntastic_python_checkers = ['pylint', 'flake8']
let g:syntastic_aggregate_errors = 1 

等等。

如果我现在称之为vimrc:

source vundle.vim
source syntastic.vim

只有最后一个插件出现在vundles插件列表中,其他配置仍然可以读取。 我想,vundle打电话给' vundle#begin()' /' vundle#end()'部分仅在调用时(:PluginXXX),因此仅返回上次获取的文件的内容。 我怎么解决这个问题? 我可以使用像

这样的东西吗?
PLUGINS = "Plugin gmarik/vundle"
PLUGINS = $PLUGINS + "Plugin scrooloose/syntastic"
...

并致电

vundle#begin()
$PLUGINS
vundle#end()

在我的vimrc中? 如果是这样,vim变量的语法是什么?

2 个答案:

答案 0 :(得分:1)

~/.vimrc

filetype off 
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

runtime! config/*.vim

call vundle#end()
filetype plugin indent on
...

~/.vim/config/syntastic.vim

Plugin 'scrooloose/syntastic'

let g:syntastic_python_checkers = ['pylint', 'flake8']
let g:syntastic_aggregate_errors = 1
...

等等。但那个IMO为零利益做了很多工作。

答案 1 :(得分:0)

我最终得到了这个:

set nocompatible
filetype off
set rtp+=~/.nvim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'rking/ag.vim'
...
call vundle#end()
filetype plugin indent on

runtime! vundle/*.vim

这意味着我获得了vundle#begin()vundle#end()的性能以及在自己的文件中为每个插件设置的模块化。这种设置给出了意想不到的优势,即管理的插件文件较少,即Plugin单行。现在唯一的插件,.vim文件,我有其他配置。

这种设置的缺点是我必须从两个地方删除插件。

优点是:提高性能;你仍然有相当模块化的插件设置,使它们更容易添加和删除。