Управление плагином для vim раньше было проблемой традиционным способом, когда файлы плагинов распределялись по всему личному каталогу среды выполнения vim, например. ~/.vim
для * nix системы. После установки плагина его трудно обновить, поскольку нет простого способа удалить устаревшие файлы плагина, что является необходимым шагом.
Вначале я хотел бы перечислить свои личные требования о том, каким должен быть прекрасный инструмент управления плагинами:
- должен быть написан на чистом VimL
- установит плагины в свой каталог
- автоматически загружает плагины при запуске vim, хорошо загружается при необходимости
- должен иметь встроенный метод установки, обновления и удаления плагинов
- Приятно иметь встроенный метод поиска необходимых плагинов
- сможет объявить необходимые плагины в файле
- приятно иметь механизм решения зависимостей
Существует множество реализаций ( Vim-Scripts.org содержит исчерпывающую сводку всех доступных инструментов), я расскажу только о нескольких основных инструментах при их создании. заказ.
vimball была первой попыткой решить проблему и фактически была полуофициальным решением, когда многие плагины поставлялись вместе с пакетом *.vba
в течение длительного времени. В сочетании с GetLatestVimScripts это стало традиционным способом управления плагином vim.
Несмотря на то, что проблема все еще оставалась до тех пор, пока Tim Pope pathogen ( Github Repo ), который помещает каждый плагин в свой каталог и загружает их при запуске путем изменения "rtp (runtimepath)" vim, обнаружился. Это большой прогресс - в сочетании с vim-scripts.org, размещенным на git / github и другими инструментами (например, vimmer ), он формирует современный способ управления плагинами vim. По этой теме много статей и видео.
Как плагин, который управляет плагинами, pathogen все еще не хватает некоторых основных функций, таких как поиск, установка, обновление и удаление плагинов. В результате вышел VAM (Vim-Addon-Manager) ( Github Repo ). VAM предоставляет практически все, что нужно для управления плагинами: помещает файлы плагинов в свой собственный каталог, загружает плагины при запуске vim, ищет / устанавливает / обновляет / удаляет плагины в командной строке ex, написанной на чистом VimL, поддерживает собственную центральную информационную базу плагинов даже разрешает зависимости плагина. Кажется, VAM должен быть тем, который нам нужен в качестве полнофункционального менеджера плагинов vim, но, с моей точки зрения, подход, который использует VAM, немного не элегантен, а иногда и чрезмерно спроектирован. Хотя это все еще замечательный плагин и его стоит использовать.
Затем появился Tom Link tplugin ( Github Repo ), который улучшил патоген путем загрузки плагинов только при вызове связанных команд или функций, аналогично AsNeeded . Кроме того, у него есть своего рода механизм решения зависимостей, который выглядит неплохо.
Finnaly, Gmarik создал Vundle ( Github Repo ), который является преемником патогена Тима Попа с вдохновением от Bundler Руби, он обеспечивает лучший пользовательский интерфейс и дополнительные функции управления. Vundle to Vim очень похож на Bundler на Ruby Project. При наличии необходимых плагинов, объявленных в vimrc, vundle обрабатывает все остальное, включая установку / обновление и удаление плагинов, через интерфейс командной строки ex. Самое главное, vundle реализован в чистом VimL. С помощью vundle управление конфигурацией vim на нескольких компьютерах можно выполнить с помощью простого файла vimrc. Как современный инструмент управления плагинами, vundle опирается на Git и может устанавливать плагин непосредственно из Github. Vundle также предоставляет модный интерактивный интерфейс для поиска и установки плагинов.
Vundle не полностью выполняет мои требования, но движется в правильном направлении, что мне кажется хорошей отправной точкой.
Вот обсуждение и другое сравнение между менеджерами плагинов vim автором VAM MarcWeber.