Удобное управление пакетами. Обновление в одно касание. Простота и элегантность. Обо всем этом под катом.
Задача
Как правило, .vim каталог имеет несколько подкаталогов для ftplugins, для плагинов, для документов и т. д. Проблема с которой сталкиваются пользователи в этом случае: для того чтобы обновить скрипт надо выяснить, какие файлы поставлялись вместе с плагином, удалить эти файлы, затем переустановить плагин. Результат — лень. Пользователи не обновляют плагины и неохотно пробуют новые. Vim без плагинов — это не Vim.
Pathogen. Шаг в правильном направлении
Одним из решений является Pathogen. Pathogen делает ваш .vim каталог аккуратным. Вместо того, чтобы один плагин распространялся через несколько подкаталогов, Pathogen позволяет вам положить каждый плагин в его собственный каталог. Таким образом, вместо этого:
/.vim
/.vim/ftplugin
/.vim/ftplugin/plugin1.vim
/.vim/ftpluginplugin2.vim
/.vim/syntax
/.vim/syntax/plugin1.vim
/.vim/syntax/plugin2.vim
Вы имеет это:
/.vim
/.vim/bundle
/.vim/bundle/plugin1
/.vim/bundle/plugin1/ftplugin
/.vim/bundle/plugin1/ftplugin/plugin1.vim
/.vim/bundle/plugin1/syntax
/.vim/bundle/plugin1/syntax/plugin1.vim
/.vim/bundle/plugin2
/.vim/bundle/plugin2/plugin
/.vim/bundle/plugin2/plugin/plugin2.vim
/.vim/bundle/plugin2/syntax
/.vim/bundle/plugin2/syntax/plugin2.vim
Также можно расширить возможности Pathogen используя Git подмодули или так Обновление плагинов Pathogen. Но, сам по себе, Pathogen только организует удобную структуру каталогов.
Vundle. Лучшее решение
Vundle является, по существу, пакетным менеджером для Vim, таким как Bunlder для Ruby. Этот плагин организует структуру каталогов также, как и Pathogen. Но в отличии от него позволяет:
- отслеживать и настраивать скрипты прямо в. vimrc
- устанавливать настроенные скрипты (aka bundle)
- обновление настроенных скриптов
- поиск по имени всех имеющахся vim скриптов
- очистка от неиспользуемых скриптов
- запускать вышеуказанные действия в одно нажатие в интерактивном режиме
Руководство по установке в Vundle readme написано просто и понятно, поэтому сдесь только краткая выжимка:
Установка Vundle:
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
Добавляем следующие строки в ваш .vimrc:
set nocompatible
filetype off " обязательно!
set rtp+=~/.vim/vundle.git/
call vundle#rc()
filetype plugin indent on " обязательно!
Следующие строки, по сути, просто пример, не стоит о них беспокоится:
" оригинальные репозитории на github
Bundle 'tpope/vim-fugitive'
Bundle 'lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
" репозитории vim-scripts
Bundle 'L9'
Bundle 'FuzzyFinder'
Bundle 'rails.vim'
" не github репозитории
Bundle 'git://git.wincent.com/command-t.git'
Стандартная формула это: Bundle "источник"
.
Здесь у нас есть список плагинов, которые вы можете использовать. Первые три — те, что вы загружаете с githhub. Вам только нужно записать username/repo_name для них. Вторые три — имена скриптов, используемые на vim.org сайте. Вам нужно только дать имя для них. Последние примеры — примеры для git репозиториев, которые живут не на github.
Теперь у вас есть список плагинов, которые вы хотите использовать в .vimrc. Что дальше? Открываем Vim и выполняем команду :BundleInstall
. Это установит все плагины записанные в вашем .vimrc.
Установка плагина даволе проста. Обновление плагинов также просто: :BundleInstal
обновит все ваши плагины. Если вы хотите удалить плагин, то удалите его из вашего .vimrc (вы можете его закоментировать). Затем запустите :BundleClean
.
Чтобы лучше справляться с плагинами нужно знать их всех по именам, что не всегда просто. Посмотреть список установленных плагинов можно при помощи команды :BundleList
.
Последний штрих в пользу менеджера плагинов Vundle — это поиск. :BundleSearch foo
поможет вам в поиске(или первоначальном обновлении кэша) для пакета foo.
" Краткая справка
" :BundleList — список конфигурированных bundles
" :BundleInstall — установить(обновить) bundles
" :BundleSearch foo — поиск(или первоначальное обновление кэша) для foo
" :BundleClean — подтверждение(или авто-одобрение) удаления неиспользуемых bundles
"
" :h или Vundle Wiki — для большей информации
«Пользователям Windows смотреть Vundle for Windows
Источники:
Репозиторий на github.
Статья, которая сподвигла меня написать этот пост.
Автор: vihryn