Управление пакетами (плагинами) для Vim

Emacs 24 похоже, у него будет пакет менеджер. Какие варианты управления пакетами существуют для Vim?


person ntimes    schedule 16.03.2010    source источник
comment
Что такое менеджер пакетов в этом контексте? Что-то вроде VimExplorer?   -  person Matt Ball    schedule 17.03.2010
comment
Что-то, что будет устанавливать и управлять сторонними плагинами из центрального репозитория.   -  person ntimes    schedule 17.03.2010
comment
ну, у vim есть центральный репозиторий (vim.org), система пакетов (vimballs) и скрипты, которые проверяют, есть ли у вас последние и самые лучшие (несколько из них, сейчас не вспомню имена) ... что больше хочешь? :-)   -  person Rook    schedule 17.03.2010
comment
Я не знал о вимболах и поправьте меня, если я ошибаюсь, но все же кажется, что вам нужно а) посетить сайт, б) загрузить файл vba - если он существует, что, похоже, не так для большинство плагинов - и в) только потом запускать вимболы. Не совсем то, что я имел в виду (см. RubyGems) :)   -  person ntimes    schedule 17.03.2010
comment
Голосование за закрытие в качестве инструмента рек. На vi: vi.stackexchange.com/questions/388/   -  person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 06.10.2015


Ответы (7)


Сейчас я использую VimPlug для моя собственная установка Vim, которую я однозначно рекомендую. Установка очень проста, и это быстро, красиво и эффективно!

ВимПлаг видео

Раньше я рекомендовал Vundle в этом ответе. Но Vundle больше не поддерживается, и есть лучшие альтернативы.

person Jostein    schedule 21.02.2011
comment
Автор прекратил поддержку vundle gmarik.info/blog /2014/02/04/ . вы все еще можете увидеть вклады на github, но, возможно, кто-то более знающий может прокомментировать будущее vundle. - person kirill_igum; 24.06.2014
comment
Кажется, он немного раздражен тем, что NeoBundle в основном просто скопировал его код вместо того, чтобы создать форк. - person Jostein; 26.06.2014
comment
Репозиторий GitHub кажется мне активным. Кроме того, в комментариях к ссылке в вашем обновлении кажется, что кто-то вышел на помощь. - person ; 10.08.2014
comment
Моя проблема с Vundle заключается в том, что он использует только git (в основном проекты github) в качестве источника. Однако, когда вы ищете там известный проект, например, TagList, вы получаете кучу зеркал с официального сайта плагина vim. Я не доверяю ни одному из них в плане безопасности. Поэтому я продолжаю использовать старый добрый Pathogen с мой собственный каталог пакетов, поддерживаемый github. - person KFL; 20.08.2014
comment
@KFL VAM имеет индекс плагинов, который теоретически имеет наиболее канонический источник для каждого плагина, будь то в репозитории git или на vim.org. Это поддерживается сообществом, но для каждого плагина есть только одно репо, так что это начало. (И вы можете обновить его самостоятельно, так как индекс представляет собой репозиторий git.) - person jpaugh; 15.02.2017

Раньше управление плагинами для vim было проблемой традиционным способом, когда файлы плагинов распространялись по всему личному каталогу среды выполнения vim, например. ~/.vim для системы *nix. После того, как плагин установлен, его трудно обновить, потому что нет простого способа удалить устаревшие файлы плагина, что является необходимым шагом.

В начале я хотел бы перечислить свои личные требования к тому, каким должен быть хороший инструмент управления плагинами:

  1. должен быть написан на чистом VimL
  2. должны устанавливать плагины в свой собственный каталог
  3. должен автоматически загружать плагины при запуске vim, приятно загружать по мере необходимости
  4. должен иметь встроенный метод установки, обновления и удаления плагинов
  5. приятно иметь встроенный метод поиска нужных плагинов
  6. должен иметь возможность объявлять необходимые плагины в файле
  7. хорошо иметь механизм решения зависимостей

Существует множество реализаций (Vim-Scripts.org имеет всесторонний обзор всех доступных инструментов), я расскажу только о нескольких основных инструментах в порядке их создания.

vimball был первой попыткой решить проблему и на самом деле был наполовину -официальное решение, что многие плагины долгое время поставлялись вместе с пакетом *.vba. В сочетании с GetLatestVimScripts это сформировало традиционный способ управления плагинами vim.

Несмотря на это, проблема оставалась до тех пор, пока Тим Поуп не обратился к возбудитель(Github Repo), который помещает каждый плагин в свой собственный каталог и загружает их при запуске, изменяя «rtp (путь времени выполнения)» vim. Это большой прогресс в сочетании с vim-scripts.org, размещенным на git/github, и другими инструментами (например, vimmer), он формирует современный способ управления подключаемыми модулями vim. На эту тему есть много статей и видео.

В качестве плагина, который управляет плагинами, в pathogen по-прежнему отсутствуют некоторые основные функции, такие как поиск, установка, обновление и удаление плагинов. В результате VAM(Vim-Addon-Manager)(Github Repo). VAM предоставляет почти все необходимое для управления плагинами: размещает файлы плагинов в своем собственном каталоге, загружает плагины при запуске vim, выполняет поиск/установку/обновление/удаление плагинов в командной строке ex, написан на чистом VimL, ​​поддерживает свою собственную центральную информационную базу данных плагинов, даже разрешает зависимости плагина. Кажется, что VAM должен быть тем, что нам нужно в качестве полнофункционального менеджера плагинов vim, но, с моей точки зрения, подход, который использует VAM, немного неэлегантен, а иногда и переработан. Хотя это все еще замечательный плагин, и его стоит использовать.

Затем появился tplugin от Тома Линка (Репозиторий Github), который улучшил патоген за счет загрузки подключаемых модулей только при вызове связанных команд или функций, подобно При необходимости. Кроме того, у него есть какой-то механизм решения зависимостей, который кажется приятным.

Наконец, Гмарик создал Vundle (Github Repo), который является преемником патогена Тима Поупа и вдохновлен Bundler, он обеспечивает улучшенный пользовательский интерфейс и дополнительные функции управления. Vundle для Vim очень похож на Bundler для Ruby Project. Имея необходимые плагины, объявленные в vimrc, vundle обрабатывает все остальное, включая установку/обновление и удаление плагинов, через интерфейс командной строки ex. Самое главное, vundle реализован на чистом VimL. С помощью vundle управлять конфигурацией vim на нескольких компьютерах можно с помощью простого файла vimrc. Как современный инструмент управления плагинами, vundle использует Git и может устанавливать плагины прямо из Github. Vundle также предоставляет интересный интерактивный интерфейс для поиска и установки плагинов.

Хотя Vundle не полностью соответствует моим требованиям, но он движется в правильном направлении, что кажется мне хорошей отправной точкой.

Вот обсуждение и другое сравнение менеджеров плагинов vim Автор VAM MarcWeber.

person weynhamz    schedule 23.10.2012
comment
после этого замечательного ответа Neobundle кажется логичной эволюцией Vundle. - person Waiting for Dev...; 02.05.2013
comment
Здорово иметь некоторую историю того, как развивались менеджеры пакетов vim - очень полезно, и я рад, что использую Vundle, поскольку у меня нет сложных требований. - person RichVel; 13.03.2016
comment
@RichVel, наоборот, я рад, что использую VAM, поскольку у меня есть одно очень сложное требование: я хочу, чтобы его было очень просто использовать изо дня в день. Довольно легко даже добавить новые плагины, если они не все готовы в индексе (вим-пи) - person jpaugh; 15.02.2017

Также есть pathogen.vim

http://www.vim.org/scripts/script.php?script_id=2332

Хотя это не совсем то, о чем вы просите, оно предоставляет средства для управления проверками из ваших github и bitbucket.

Это хорошо, поскольку разделяет структуру каталогов плагина. Таким образом, вы можете проверить репозиторий плагина и получить надлежащий контроль версий, а не полагаться на сопровождающего для обновления кода. Кроме того, автор плагина не полагается на установку/упаковку в соответствии с другими указанными параметрами.

На vim.org есть несколько других плагинов, которые выполняют эту задачу, хотя я не могу их найти на данный момент.

person michael    schedule 17.03.2010

Сейчас я использую самодельную настройку, но я продолжаю убеждать себя когда-нибудь попробовать (все ссылки относятся к одному и тому же плагину):

  1. vim-addon-manager: легко управлять плагинами и обновлять их; плагин Марка Вебера (@ vim.org)
  2. профиль GitHub Марка Вебера; у него есть несколько репозиториев, связанных с v-a-m
  3. Vim-plugin-manager @ Vim wiki -- имя страницы разные, но на самом деле имеется в виду один и тот же плагин

Еще раз, я еще не пробовал это сам, но это, безусловно, выглядит многообещающе.

person Michał Marczyk    schedule 16.03.2010

Vim.org + Vimballs + GetLatestVimScripts в настоящее время предпочтительнее встроены для управления плагинами vim.

:h GetLatestVimScripts

Плохие вещи об этом:

  • не поддерживает Windows (GetLatestVimScripts использует wget AFAIR)
  • На vim.org есть много плагинов, которые не поддерживают GLVS и Vimball.
person Maxim Kim    schedule 17.03.2010
comment
Вы можете установить wget в Windows, если вы смогли установить Vim в Windows :) - person wRAR; 17.03.2010

Все эти ответы кажутся довольно старыми. Как описано в этом ответе на аналогичный вопрос,

И Vim 8.0, и Neovim имеют собственный встроенный менеджер пакетов.

Нет необходимости в другом менеджере плагинов.

Пользуюсь уже год или два и мне кажется все просто и легко.

Вот несколько ресурсов о его преимуществах и способах его использования:

person Sigfried    schedule 26.06.2020
comment
Удивительно, что этот ответ не получил больше голосов. :/ - person Jesse Adelman; 15.12.2020
comment
Я так думаю обо всех своих ответах :) - person Sigfried; 23.06.2021

Попробуйте NeoBundle, лучший менеджер пакетов для vim. Это ответвление Vundle.

person trusktr    schedule 23.04.2013
comment
Каковы различия между ними? - person Peter Gibson; 06.12.2013
comment
Из ридми NeoBundle: Активная разработка NeoBundle остановлена. Единственными будущими изменениями будут исправления ошибок. - person icc97; 07.09.2017