jungo 06.04.2011 16:51

Vimvim-bundle-mate: еще одна альтернатива обновлению плагинов vim

Наверняка уже все виммеры слышали о таком замечательном плагине, как pathogen. Хорошая штука. Установил, попробовал, понравилось. Стал переносить старые плагины из вима, попутно нашел парочку новых полезных плагинов, которые пригодились бы в работе. Через некоторое время понял, что руками всё это делать дико не удобно, поэтому решил вопрос иначе: прогуглил на предмет наличия каких-нибудь автоинсталляторов плагинов (в том числе и на хабре). И вот что нашел:

pathogenized - скрипт на руби. Не понравился конфиг (много лишнего), не нашел поддержки vba. Существует несколько форков.
vim-addon-manager - плагин для vim. Умеет git, mercurial, svn, bzr, www.vim.org. Не понравилась идея реализации как плагина на VimL.
vimpyre - менеджер скриптов для Vim. Работает по образу и подобию пакетных менеджеров в *nix, хранит базу скриптов vim на github. Что ж, опять не то, что я искал.
vundle - похож на vim-addon-manager, не устроил по тем же причинам, плюс, идея писать список нужных плагинов в .vimrc меня не вдохновила.
vim-update-bundles - написан на руби, список плагинов пишется в .vimrc, на странице проекта нет упоминания про поддержку плагинов с www.vim.org.
vimana - система для поиска, установки и загрузки вим-скриптов. Функционалом напоминает vimpyre.
update_bundles - очень близко к тому, что мне было нужно, поддерживает и git и vim.org, но не порадовала зависимость от модуля config для Питона, и формат задания списка плагинов.

Идея

В общем, ни один из найденных вариантов меня не удовлетворил, и я решил написать свой, простой и удобный автоинсталлятор/апдейтер на Питоне.
На момент рождения идеи мне хотелось видеть следующие плюсы:
1. один маленький скрипт без внешних конфигов и плагинов, разбросанных по директориям.
2. установка плагинов из git.
3. так как не все разработчики используют git, то получать нужные плагины с vim.org.
3.1 установка плагинов как из zip-архивов, так и из vba/vba.gz-архивов.

Требования небольшие, писать скрипт на Питоне оказалось легко и приятно, и за пару дней был рождён vim-bundle-mate - маленький и простой установщик плагинов для vim. Плюсом (по крайней мере, для меня) является то, что скрипт не требует ничего, кроме Питона версии 3.2 и git. Возможно некоторым придется не по нраву то, что используется третья версия, но во-первых, на неё всё-равно придется переходить, во-вторых, в Archlinux используется именно эта версия интерпретатора, ну и в-третьих, портировать такой маленький скрипт под Питон 2.7 проще простого.

Настройка

Настройка крайне проста: все ссылки на плагины и репозитории указываются в самом скрипте. Те плагины, которые есть в git, заносятся в соответствующий список с указанием адреса репозитория и названия директории плагина в bundle. Для плагинов, что должны быть скачаны с www.vim.org, должен быть указан src_id (определяется на странице плагина), название директории в bundle, и тип: zip, vba, либо название директории, в которую должен быть помещен скачанный файл.

Пример для git:
('https://github.com/msanders/snipmate.vim.git','snipmate')
Пример для vim.org:
('python-complete','10872','autoload'),
('buffer-explorer','14208','zip'),
('supertab-continued','15029','vba')

После внесения всех своих плагинов (кстати, в стандартной поставке уже указаны самые популярные плагины), необходимо лишь запустить скрипт и дождаться завершения загрузки. Все плагины будут аккуратно разложены по своим директориям.

Послесловие

Конечно, есть куда стремиться, например, в ближайшее свободное время планирую добавить автообновление плагинов с указанной страницы на vim.org.

Репозиторий проекта: https://github.com/jungo-git/vim-bundle-mate
Для тех, кто не использует git:
cd /tmp
git clone git@github.com:jungo-git/vim-bundle-mate.git
cd vim-bundle-mate
mv update ~/.vim/
python ~/.vim/update

UPD: что ж, на эту неделю последнее обновление: плагин стал полноценным, появилась поддержка выполнения пользовательских команд после загрузки и установки любого плагина (например, можно сразу же собрать command-t). Эта возможность является опциональной, то есть можно и не указывать ни каких команд, соответственно, те, кто уже пользуется скриптом и составил свой список плагинов, не обязаны изменять его.
В связи с этим событием, нумерую плагин версией 1.0.

Спасибо за внимание.


Тэги: vim vim-bundle-mate обновление плагинов
+ 5 -
Похожие Поделиться

kstep 06.04.2011 17:46 #
Люто бешено плюсую.
kstep 06.04.2011 20:30 #
Может поместить этот пост в блог Vim?
jungo 06.04.2011 20:40 #
Я бы с удовольствием, но никак не разберусь как это сделать, читаю welinux давно, а зарегистрировался только сегодня.
settler 06.04.2011 22:12 #
Присоединится к нужному блогу, тогда при создании/редактировании поста можно будет размещать в этот блог
jungo 06.04.2011 23:16 #
Спасибо, перенёс в vim.
jungo 07.04.2011 00:03 #
В дополнение к посту: как и обещал, реализовал автоматическое обновление плагинов с www.vim.org, немножко изменился формат списка файлов (теперь можно указывать обновлять ли этот плагин автоматически, либо указать номер конкретной версии (src_id)).