Модульный vimrc: как получить плагин vundle из разных файлов

Я хочу разбить мой vimrc на разные компоненты. Я управляю своими плагинами vim с помощью Vundle, и я хочу иметь один файл на каждый плагин, который сообщает 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 ответа

~/.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
...

И так далее. Но это ИМО, много работы для нулевой выгоды.

Я закончил с этим:

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, файлы с дополнительной настройкой.

Недостатком этой настройки является то, что я должен удалить плагин из двух мест.

Преимущества: повышенная производительность; у вас все еще есть довольно модульные настройки плагинов, что облегчает их добавление и удаление.

Другие вопросы по тегам