Каждый раз, когда выходит обновление плагина для vim'a приходится вручную проделывать лишние телодвижения: зачистить все папки относящиеся к этому расширению (а, особенно размазан xptemplate), выкачать новую версию, разложить содержимое архива по структуре каталогов (autoload, plugin, doc, etc.).
Было бы куда удобней, если за это все отвечал какой-то менеджер пакетов/обновлений. Об одном из таких расширений и пойдет речь в этом посте, имя ему - pathogen. По большому счету это даже не менеджер пакетов/обновлений, а простой подключатель указанных папок в runtimepath vim'a, но если все правильно приготовить то получится очень даже 'вкусно'. Главная фишка pathogen - заглянуть в указанную папку, взять все подпапки и добавить их в vim'овский PATH. А в этих подпапках уже лежат плагины со своей структурой каталогов, например путь для плагина command-t будет такой ~/.vim/bundle/command-t. Удаление плагина равноценно удалению папки с именем плагина.
Перейдем от теории к практике.
Начнем все с чистого листа
mv ~/.vim ~/vim_old
Берем последнюю версию pathogen и кладем в ~/.vim/autoload
git clone https://github.com/tpope/vim-pathogen.git ~/.vim/
Создадим папку ~/.vim/bundle, в которой будут жить плагины
mkdir ~/.vim/bundle
В эту папку начинаем закидывать используемые плагины, предварительно создав папку с именем плагина. Но советую на этом этапе не спешить и дочитать до места где все это сделает скрипт.
В ~/.vimrc добавляем две команды, одна для запуска pathogen, вторая для автогенерации документации новых плагинов
call pathogen#runtime_append_all_bundles() call pathogen#helptags()
На этом этапе все плагины живут в отдельных папках, что облегчает их управление и вносит порядок в структуру каталогов. Теперь можно перенести из ~/vim_old папки colors, spell, syntax.
Осталось дело за малым, автоматизировать обновление плагинов. Для этого понадобится pathogenized, который умеет парсить файл со списком используемых плагинов и обновлять их из git-репозитария. Огромный список плагинов и их git-репозитариев есть на сайте vim-scripts.org, 98% используемых мной плагинов есть в этом списке, остальные 2% можно найти в google, хотя не исключено что меинтейнеры vim-scripts.org могли добавить новый плагин кода вы читаете эти строчки.
Pathogenized складирует git-репозитарии плагинов в ~/.vim/bundle/ и умеет их обновлять по команде. Для удаления плагина надо вручную удалить из списка и зачистить папку из ~/.vim/bundle/.
В оригинале pathogenized написан на ruby, а это означает, что придется ставить ruby и некоторые сопутствующие пакеты. Но это особо не проблема если вы программист на ruby или ставили другие плагины, которые требуют ruby (например, command-t).
В комментариях dimas поделился аналогом pathogenized на python, брать тут.
Если продолжать вариант с ruby, то ruby1.8 под Ubuntu ставится так
sudo apt-get install ruby1.8 ruby1.8-dev rubygems1.8 rake
Установим pathogenized
sudo gem install rubyzip archive-tar-minitar git clone git@github.com:kljohann/pathogenized.git ~/.vim cp ~/.vim/plugins.example.idnt ~/.vim/plugins.idnt
В plugins.idnt хранятся плагины, за обновлением которых надо следить. Мой plugins.idnt.
Для запуска процесса обновлений надо выполнить этот скрипт
~/.vim/bin/update_plugins
Список загруженных плагинов можно просмотреть с помощью
:scriptnames
Другие варианты управления плагинами
Выше описанный способ вполне приемлем, но не идеален. У каждого из опробованных способов обновлений есть свои плюсы и минусы. Кто-то умеет искать по своей базе, кто-то умеет складывать куда надо, кто-то умеет почти автоматически следить за обновлениями и т.д.
Дополнительное чтиво