Для Vim существует несколько менеджеров плагинов. Я хочу рассказать еще об одном.
Введение
На Хабре уже были обзоры менеджеров плагинов: раз, два. Рассмотрим еще один: VIM-PLUG. Данный менеджер обладает рядом интересных возможностей:
- Простота установки (код плагина содержится в единственном файле)
- Быстрые установка и обновление плагинов (если Vim собран с опцией +ruby)
- Поддержка ветвей и тегов
- Постобработка
В статье автор рассказывает о причинах, побудивших его написать еще один плагин. А в это статье приводит сравнение производительности плагинов.
Установка и базовая настройка
Чтобы установить плагин, достаточно скачать один файл:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
А можно добавить в .vimrc следующий фрагмент:
if empty(glob("~/.vim/autoload/plug.vim"))
execute '!curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.github.com/junegunn/vim-plug/master/plug.vim'
endif
и плагин установится при первом старте Vim'а.
Далее следует добавить информацию об устанавливаемых плагинах:
call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree' " Project and file navigation
Plug 'majutsushi/tagbar' " Class/module browser
Plug 'fisadev/FixedTaskList.vim' " Pending tasks list
...
Plug 'freeo/vim-kalisi'
call plug#end()
Для установки плагинов необходимо выполнить команду PlugInstall, для обновления — PlugUpdate:
Для обновления самого плагина используется отдельная команда PlugUpgrade, для удаления плагинов — PlugClean.
Дополнительные настройки
При настройке можно указать конкретный тип файла, для которого будет загружаться указанный плагин. Конечно, хорошо написанный плагин сам такое должен уметь, но такое бывает не всегда:
Plug 'itchyny/vim-cursorword', {'for': 'python'}
Также можно указать какую-либо команду и VIM-PLUG загрузит плагин при первой попытке выполнить эту команду:
Plug 'fmoralesc/vim-pad', {'on': 'Pad'}
Некоторые плагины требуюют выполнение дополнительных действий после своей установки. VIM-PLUG может помочь и в данном случае:
Plug 'Valloric/YouCompleteMe', {'do': 'sudo ./install.sh'}
git submodule update --init --recursive
Также можно указать ветку или тег, с которых следует брать код плагина:
Plug 'xvadim/vim-cursorword', {'branch': 'feature', 'for': ['python', 'bash']}
Заключение
Лучший способ надоесть — рассказать все до конца. Помимо рассмотренных, данный менеджер поддерживает еще дополнительный ряд возможностей, с которыми можно ознакомиться на странице проекта.
Автор: XVadim