2015-03-17 4 views
0

После использования vim в течение некоторого времени мой ~/.vim/, начиная с моих первых экспериментов с vim, со временем стал очень грязным. Поэтому я подумал, что пришло время привести в порядок и начать с менеджера плагинов с чистой конфигурацией.Как включить диспетчер плагинов без ~/.vimrc

Поскольку я делюсь своей конфигурацией на нескольких машинах, я обычно управляю своим путем ~/.vim/ с помощью git repo. Чтобы избежать большого .vimrc, я установил свою собственную конфигурацию под ~/.vim/plugin/. Это позволило мне сохранить всю мою общую конфигурацию в этой папке и использовать ~/.vimrc только для конфигурации, зависящей от машины.

Начиная с VAM над NeoBundle и теперь Vundle У меня всегда такая же проблема. Если я добавлю необходимую конфигурацию под ~/.vim/plugin/pluginmanager.vim вместо ~/.vimrc, установленные плагины не будут загружаться или загружаться только частично. В команде :echo &rtp перечислены правильные пакеты, но :scriptnames не включает установленные плагины. Если я выполню mv ~/.vim/plugin/pluginmanager.vim ~/.vimrc, все работает так, как ожидалось.

Может ли кто-нибудь объяснить это поведение и, возможно, предложить решение?

Мой pluginmanager.vim выглядит следующим образом:

set nocompatible    " be iMproved, required 
filetype off     " required 

" set the runtime path to include Vundle and initialize 
set rtp+=~/.vim/bundle/Vundle.vim 
call vundle#begin() 

" let Vundle manage Vundle, required 
Plugin 'gmarik/Vundle.vim' 
Plugin 'bling/vim-airline' 
Plugin 'MarcWeber/vim-addon-mw-utils' 
Plugin 'tomtom/tlib_vim' 
Plugin 'garbas/vim-snipmate' 
Plugin 'honza/vim-snippets' 

" All of your Plugins must be added before the following line 
call vundle#end()   " required 
filetype plugin indent on " required 

Моя установка ВИМ является версия 7.4.52

+1

Вы также не хотите использовать '~/.vim/vimrc'? – FDinoff

+0

Спасибо, не знал о '~/.vim/vimrc'. Кажется, это лучшее решение.Думаю, мне нужно обновить заголовок вопроса. – Trendfischer

ответ

1

Проблема заключается в том порядке запуска. После того, как ваш ~/.vimrc был выполнен (как первое при запуске), Vim выполняет что-то вроде :runtime! plugin/*.vim для загрузки плагинов. Поскольку ваш менеджер плагинов только вызывается, изменения в 'runtimepath' не доходят до запуска команды :runtime, и плагины не могут загрузить.

Есть много обходных путей:

  • Переместить сценарий к ~/.vim/pluginmanager.vim и явно :runtime pluginmanager.vim его из (каждая копия) ваш ~/.vimrc.
  • Повторный запуск через :runtime! plugin/*.vim.

Но я согласен с @brettanomyces, что лучшим решением было бы использовать ~/.vimrc по назначению, а также конфигурации системы конкретного места в другой сценарий вместо этого.

+0

Да, это объясняет поведение. Спасибо за понимание. Но в качестве решения я буду использовать '~/.vim/vimrc', как @FDinoff, предложенный в его комментарии. Это совместимо с подходом системы управления версиями. – Trendfischer

+1

Да, это хорошее решение, если у вас есть текущие версии Vim на всех системах, поскольку это довольно недавняя функция. –

+0

А, хороший момент. Я тестировал версии. Команда ': version' была полезной, она перечисляет, где используются файлы vimrc. – Trendfischer

1

Я бы рекомендовал использовать файл ~/.vimrc для общей конфигурации и с другой файл, например, ~/.vimrc.local с вашей машиной конкретной конфигурации. Вы можете указать ~/.vimrc.local, добавив следующее к вашему ~/.vimrc.

if filereadable(glob("~/.vimrc.local")) 
    source ~/.vimrc.local 
endif 

Кредит: http://blog.sanctum.geek.nz/local-vimrc-files/


Для решения вашей проблемы попробуйте добавить runtime! bundle/**/*.vim в конец файла pluginmanager.vim.

Смотрите также: :help init

+0

Спасибо за ответ. Поиск других файлов - хороший способ и законное решение. Но мое намерение - избегать .vimrc. Без диспетчера плагинов я не пропустил его, и мои различные конфигурации лучше организованы в каталоге плагинов. Но это может быть какое-то индивидуальное предпочтение. – Trendfischer

+0

@Trendfischer: просто ссылку на '~/.vimrc' на что-то в вашем репозитории Git. – Kevin

Смежные вопросы