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


81

Emacs 24, схоже, матиме менеджер пакетів. Які варіанти управління пакетами існують для Vim?


1
Що таке менеджер пакетів у цьому контексті? Щось на зразок VimExplorer?
Matt Ball

Щось, що буде встановлювати та керувати сторонніми плагінами з центрального сховища.
ntimes

1
ну, vim має центральне репо (vim.org), пакетну систему (vimballs) та скрипти, які перевіряють, чи є у вас найновіші та найвищі (кілька з них, не згадуйте імен зараз) ... що ще хочеш? :-)
Ладья

3
Я не знав про vimballs, і виправте мене, якщо помиляюся, але все одно здається, вам потрібно: a) відвідати сайт, b) завантажити файл vba - якщо він існує, що, схоже, не стосується більшість плагінів - і в) лише тоді запускають вімбали. Не зовсім те, що я мав на увазі (див. RubyGems) :)
ntimes

Голосування за закриття в якості інструменту На vi: vi.stackexchange.com/questions/388/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Відповіді:


85

Зараз я використовую VimPlug для власної настройки Vim, і я точно рекомендую його. Встановлення дуже просте, і це швидке, гарне та ефективне!

Відео VimPlug

Раніше я рекомендував Vundle у цій відповіді. Але Vundle більше не підтримується, і є кращі альтернативи.


Автор припинив підтримувати vundle gmarik.info/blog/2014/02/04/… . Ви все ще можете бачити внески на github, але, можливо, хтось більш обізнаний може прокоментувати майбутнє vundle.
kirill_igum

Він здається злегка роздратованим тим, що NeoBundle здебільшого просто скопіював свій код, замість того, щоб робити форк. Але якщо він більше не підтримує його, можливо, NeoBundle візьме на себе?
Jostein

Репо GitHub мені здається активним. Крім того, у коментарях до посилання у вашому оновленні, схоже, хтось підхопив допомогу.

Мій біль у Vundle полягає в тому, що він використовує лише git (в першу чергу проекти github) як джерело. Однак коли ви шукаєте там добре відомий проект, наприклад, TagList, ви отримуєте купу "дзеркал" з офіційного сайту плагінів vim. Я не довіряю жодному з них заради безпеки. Тому я продовжую використовувати старий добрий Pathogen зі своїм власним каталогом пакетів, що підтримується Github .
KFL

@KFL VAM має індекс плагіна , який теоретично має найбільш канонічне джерело для кожного плагіна, будь то в git repo або на vim.org. Це спільнота підтримується, але для кожного плагіна існує лише одне репозиторій, тож це початок. (І ви можете оновити його самостійно, оскільки індекс є git-репо.)
jpaugh

38

Управління плагінами для vim раніше було болем традиційним способом, розповсюджуючи файли плагінів по всьому особистому каталогу виконання vim, наприклад. ~/.vimдля системи * nix. Після встановлення плагіна його важко оновити, оскільки немає простого способу видалити застарілі файли плагінів, що є необхідним кроком.

На початку я хотів би перерахувати мої особисті вимоги щодо того, яким має бути прекрасний інструмент управління плагінами:

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

Існує безліч реалізацій ( Vim-Scripts.org містить вичерпний підсумок усіх доступних інструментів), я розповім лише про декілька основних інструментів за їх порядком створення.

vimball був першою спробою вирішити проблему і насправді був напівофіційним рішенням, яке багато плагінів *.vbaтривалий час постачалося разом із пакетом. У поєднанні з GetLatestVimScripts це сформувало традиційний спосіб управління плагінами vim.

Незважаючи на те , що проблема до цих пір залишається до Tim Папі «s патогена ( Github Repo ), який поміщає кожен плагін в свій власний каталог і завантажує їх при запуску шляхом зміни" РТП (runtimepath) "в Vim, виявився. Це великий прогрес - у поєднанні з vim-scripts.org, розміщеним на git / github та іншими інструментами (наприклад, vimmer ), він утворює сучасний спосіб управління плагінами vim. На цю тему є багато статей та відео.

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

Потім з’явився tplugin Тома Лінка ( Github Repo ), який покращив патоген, завантажуючи плагіни лише тоді, коли викликаються відповідні команди або функції, подібні до AsNeeded . Крім того, він має якийсь механізм вирішення залежностей, який здається приємним.

Нарешті, Гмарік створив 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.


2
слідуючи цій чудовій відповіді, Neobundle здається логічною еволюцією від Vundle
Waiting for Dev ...

Чудово мати трохи історії про те, як еволюціонували менеджери пакетів vim - дуже корисно, і я радий, що використовую Vundle, оскільки не маю складних вимог.
RichVel

@RichVel, навпаки, я радий, що використовую VAM, оскільки у мене є одна дуже складна вимога: я хочу, щоб вона була дуже простою в повсякденному використанні. Навіть досить легко додати нові плагіни, навіть якщо вони не всі готові в індексі ( vim-pi )
jpaugh

25

Також є патоген.вим

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

Хоча це не зовсім те, про що ви просите, воно забезпечує засіб управління оплатами з вашого github та bitbucket.

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

На vim.org є деякі інші плагіни, які виконують це завдання, хоча наразі я їх не можу знайти


12

Поки що я використовую власноруч створену установку, але я постійно повторюю собі, щоб колись зробити це (всі посилання пов’язані з одним і тим же плагіном):

  1. vim-addon-manager : легко керувати та оновлювати плагіни; плагін від Марка Вебера (@ vim.org)
  2. Профіль GitHub Марка Вебера; у нього є декілька репо, пов’язаних з вам
  3. Vim-plugin-manager @ Vim wiki - назва сторінки інша, але насправді мається на увазі той самий плагін

Ще раз, я насправді ще не пробував цього, але це, безумовно, виглядає багатообіцяючим.


5

Vim.org + Vimballs + GetLatestVimScripts - це вбудований спосіб управління плагінами vim на даний момент.

:h GetLatestVimScripts

Погані речі:

  • не підтримує Windows (GetLatestVimScripts використовує wget AFAIR)
  • vim.org має багато плагінів, які не відомі GLVS та Vimball.

7
Ви можете встановити wget на Windows, якщо вам вдалося встановити Vim на Windows :)
wRAR

3

Перевірте NeoBundle , остаточний менеджер пакетів для vim. Це розвилка Vundle .


4
Які відмінності між ними?
Пітер Гібсон,

З читання NeoBundle: "Активна розробка на NeoBundle зупинена. Єдиними майбутніми змінами стануть виправлення помилок".
icc97

3

Усі ці відповіді здаються досить старими. Як описано у цій відповіді на подібне запитання ,

І Vim 8.0, і Neovim мають власний вбудований менеджер пакетів

Інший менеджер плагінів взагалі не потрібен.

Я користуюся ним рік-два, і це здається мені простим і легким.

Ось декілька джерел про його переваги та способи використання:


Дивно, що ця відповідь не отримала більше голосів. : /
Джессі Адельман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.