Another VIM Addon Manager
С недавнего времени я вернулся к использованию текстового редактора vim. И передо мной встала проблема в установке и организации дополнений. Разумеется, что класическую систему я отверг сразу, пробовал использовать pathogen, чуть позже попробовал vundle. Однако меня постоянно что-то не устраивало.
В случае с чистым pathogen было сложно хранить конфигурацию в репозитории git, для установки расширения требовалось создавать отдельный модуль, обновление расширений проводилось только в ручную, а удаление было довольно сложно, так как требовалось выполнить целый ряд команд.
В случае с vundle мой файл конфигурации vimrc довольно сильно разросся. Но помимо этого я попробовал использовать свой репозиторий с чистого листа, как будто устанавливал vim на новую машину и столкнулся с тем, что получил массу ошибок при запуске vim. Понимаю, что это временное явление, но ситуация мне не понравилась.
В итоге я решил написать свой собственный менеджер. В качестве языка выбрал ruby, и организовал сам скрипт в виде Rakefile.
Готовый скрипт разместил на сервере Github в репозитории another-vim-addons-manager .
Основной принцип работы заключается в организации yaml-файла plugins.yaml, который автоматически создается в текущей директории после запуска Rakefile. По умолчанию прописывается только один адрес репозитория расширения vim-pathogen, именно на нем основана работа менеджера.
Для добавления нового расширения в редактор vim достаточно указать адрес git-репозитория данного расширений, а для удаления – соответственно, удалить описание данного репозитория из yaml-файла. После чего достаточно вызвать команду rake.
Кстати, команда rake может принимать один из следующих аргументов:
$ rake -T
rake clean # Remove excess plugins in bundle directory
rake default # Install new and remove excess plugins in bundle directory
rake install # Install new plugins in bundle directory
rake list # List plugins in bundle directory
rake update # Update plugins in bundle directory
По умолчанию производится очистка дополнений от тех, чьи адреса были удалены из файла конфигурации и затем устанавливаются новые дополнения, если они были указаны.
Минимально необходимый файл vimrc располагается в репозитории. Он содержит в себе строки для активизации расширения vim-pathogen.
runtime bundle/vim-pathogen/autoload/pathogen.vim
call pathogen#infect()
syntax on
filetype plugin indent on
При необходимости, можно добавлять свои опции в конце файла vimrc.
Преимущества данного способа организации расширений заключается в том, что достаточно хранить только файл plugins.yaml, чтобы затем очень быстро восстановить все необходимые расширения. С помощью данного менеджера очень легко удалять расширения, а так же обновлять их. Достаточно только изменить файл конфигурации и затем использовать команду rake с соответствующим параметром.
Установка
Для установки достаточно клонировать данный репозиторий в директорию, где должны располагаться файлы конфигурации VIM, обычно это директория ~/.vim:
$ git clone https://github.com/Juev/another-vim-addon-manager.git ~/.vim
После чего достаточно перейти в указанную директорию и выполнить команду:
~/.vim $ rake
Будет установлено расширение vim-pathogen, которое требуется для работы менеджера. Затем дополняем файл plugins.yaml, прописывая адреса репозиториев требуемых расширений, к примеру:
---
- https://github.com/tpope/vim-pathogen
- https://github.com/scrooloose/nerdtree
- https://github.com/vim-scripts/L9
- https://github.com/mileszs/ack.vim
- https://github.com/tpope/vim-rails
- https://github.com/vim-ruby/vim-ruby
После очередного запуска команды rake будет произведена установка этих расширений.
На мой взгляд, все довольно просто и удобно. Однако если заметите ошибки или у вас будут какие-нибудь замечания, обращайтесь в электронную почту или непосредственно в раздел Issues данного репозитория на сервере Github.