Як встановити плагін у Vim / vi?


96

Як встановити плагін у Vim?

Це важливо:

  • Я використовую vi чи Vim?
  • Чи використовую я gVim?
  • Яку версію Vim я використовую?
  • Що таке моя ОС?

Відповіді:


65

Щоб встановити плагін, ми повинні знати, в яку форму він входить. Це може бути:

Один .vimфайл повинен бути розміщений в .vim/pluginкаталозі.

Файл Vimball можна встановити , відкривши його у Vim та запустивши :source %.

Набір файлів у стандартному макеті каталогів можна встановити, скопіювавши їх .vim, або за допомогою диспетчера пакунків плагінів .

Плагіни можуть залежати від певних функцій. Тому:

  • Це може мати значення, якщо ви використовуєте Vi чи Vim,
  • Це може мати значення, ви використовуєте gVim чи ні (gVim, як правило, має більше функцій, увімкнених під час компіляції, ніж Vim у тому ж дистрибутиві).
  • Це може мати значення, на якій версії Vim ви перебуваєте, оскільки функція, можливо, була додана після вашої версії Vim.
  • Це може мати значення, на якій ОС ви перебуваєте, особливо якщо плагін викликає зовнішні команди.

Для більшості плагінів це може не мати значення.


9
Це, безумовно, важливо, якщо ви використовуєте Vi - концепція плагінів не існує для Vi. Звичайно, набір тексту viна будь-якому сучасному вікні, ймовірно, буде лише запущений vimіз вимкненими функціями. Сумніваюсь, що багато людей мають доступ до фактичних Vi в наші дні.
tommcdo

37

vim-plug

Мені подобається використовувати менеджер плагінів vim-plug .

Проблема з встановленням плагіна вручну полягає в тому, що видалити плагін досить важко ; у вас часто є кілька різних файлів у різних каталогах, вам доведеться їх вручну знайти та видалити.

Проблеми з оновленням аналогічно складні: що робити, якщо autoload/old-name.vimйого перейменують autoload/new-name.vim? Тепер у вас є і стара, і нова версія плагіна.

vim-plugвирішує це, зберігаючи кожен плагін у власному каталозі; вона також включає в себе команду легко встановити / вилучити плагін, тому вам не доведеться обробляти розпакування плагінів тощо.

Ключовою перевагою vim-plug над Pathogen є те, що vim-plug дозволяє вам легше встановлювати та видаляти плагіни. Все, що робить Pathogen - це дозволяти кожному плагіну знаходитися в окремому вміщеному каталозі.

vim-plug покладається на git ; для MS Windows ви хочете msysgit .

Ви можете визначити плагіни у своєму vimrc так:

call plug#begin('~/.vim/plugged')

" For MS Windows, this is probably better:
"call plug#begin('~/vimfiles/plugged')

Plug 'embear/vim-localvimrc'
Plug 'kchmck/vim-coffee-script'
" ... etc

call plug#end()

Потім перезапустіть Vim та встановіть плагіни за допомогою:

:PlugInstall

Це дозволить розмістити плагіни ~/.vim/pluggedабо $HOME\vimfiles\pluggedдля MS Windows.

Ви можете додати цей фрагмент із поширених запитань у файл vimrc перед plug#begin()викликом:

if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall
endif

Зверніть увагу, curlдля цього вам потрібно працювати. Це майже завжди доступно в Linux та OSX, але не в MS Windows; тому цей трюк не буде працювати там ...

Щоб видалити плагін, вийміть його з файлу vimrc та запустіть:

:PlugClean

Зауважте, що vim-plug не підтримує встановлення скриптів з веб-сайту скриптів Vim, але ці сценарії відображаються в GitHub , тому не потрібно цього робити.

Також є деякі додаткові переваги до цього, такі як легше оновлення плагіна та завантаження на вимогу для кращої продуктивності. Ви також можете легко скопіювати свій vimrc на інший комп'ютер, запустити :PlugInstallта мати всі свої плагіни.

Зауважте, що більше менеджерів плагінів; Я випадково вживаю vim-plug. Дивіться також: Яка різниця між менеджерами пакунків vim?


1
одна з найважливіших переваг vim-plug перед іншими - паралельна установка / оновлення плагінів
r3bo0t

"ці сценарії відображені в GitHub, тому робити це не потрібно". На жаль, скрепер давно перестав працювати. github.com/vim-scraper/vim-scraper/isissue/…
Bluu

@Bluu Так, я зв’язався з технічним співробітником минулого року; Є деякі технічні біти, які потребують оновлення, і ніхто насправді не підходить для того, щоб сказати оновлення: - / Це все ще дещо корисно, оскільки багато сценаріїв не оновлюються все так часто (особливо ті, які відсутні на GitHub).
Мартін Турноїй

25

Збудник

Патоген - це менеджер шляху виконання, який завантажує плагіни у Vim. Це робить модуль плагінів простим; ось як це працює:

Примітка. Якщо ви використовуєте Windows, замініть ~/.vimна $HOME\vimfiles.

  1. Скопіювати pathogen.vimв ~/.vim/autoload/pathogen.vim.

  2. Створіть ~/.vim/bundleкаталог, якщо він уже не існує.

  3. Додайте наступний рядок до самого початку вашого .vimrc:

    execute pathogen#infect()
    
  4. Ви закінчили! Коли ви хочете додати плагін, просто скопіюйте весь каталог плагінів до нього ~/.vim/bundleабо в git cloneнього. Наприклад:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * Caveat: Якщо ваш плагін випускається у вигляді .vimфайлу, він не працюватиме з Pathogen. Скопіюйте його ~/.vim/pluginзамість цього (можливо, вам доведеться створити цей каталог, якщо він не існує).


5
Примітка: патоген не є менеджером плагінів.
romainl

або git submodule add(замість цього git clone), якщо ваша конфігурація vim вже є частиною вашого власного проекту git.
Мартін Йорк

@romainl що це тоді?
RodrikTheReader

3
Це менеджер виконання. Як в ньому керує runtimepathваріантом, і це все. Він не займається оновленням, додаванням, завантаженням, видаленням плагінів.
romainl

1
Також дивіться відмінну суть @romainl щодо використання патогена .
icc97

23

Vim 8+ / Neovim

У версії 8 представлений новий механізм пакетів, який значною мірою замінює потребу в існуючих менеджерах плагінів (патоген, vim-plug, vundle тощо) на момент написання (2017).

З документації :

Vim пакет являє собою каталог , який містить один або кілька полігонів

Каталог пакунків містить два підкаталоги:

  • start/ - містить плагіни, які автоматично завантажуються
  • opt/ - містить плагіни, які завантажуються за запитом :packadd

Це може здатися трохи складним, але на практиці все, що вам потрібно зробити, це додати тут свій плагін :

                 ↓ package name
~/ .vim / pack / bundle / start / some-plugin
          ↑ packages dir          ↑ plugin dir

У Windows : використовувати ~\vimfiles\pack\замість~/.vim/pack/

За умовою, ми використовували назву пакета "bundle" як каталог, який буде містити всі наші плагіни. Ви можете використовувати будь-яке ім’я, яке ви хочете, і навіть можете помістити свої плагіни в окремі каталоги пакетів, якщо ви дійсно хочете.

Приклад: Встановлення sensible.vim

mkdir -p ~/.vim/pack/bundle/start
cd ~/.vim/pack/bundle/start
git clone https://github.com/tpope/vim-sensible.git

У Windows : використовувати ~\vimfiles\pack\замість~/.vim/pack/

Наступного разу, коли ви запустите Vim, плагін завантажиться автоматично.


3
Якщо хтось .vimзнаходиться під контролем версій, може бути краще встановити плагіни з підмодулями git; дивіться shapehed.com/vim-packages/#adding-a-package .
Арк Стентон

Якби була відповідь, заснована на часі, це буде сьогодні прийнята відповідь на сьогодні.
Амін NAIRI

12

Не забуваймо великого і могутнього Вундла !

Vundle - це повний менеджер плагінів з функціональністю для:

  • Пошук плагінів (за допомогою :PluginSearch)
  • Встановлення плагінів (за допомогою :PluginInstall)
  • Оновлення плагінів (за допомогою :PluginUpdate)
  • Керування контуром завантаження плагіна в .vimrc (просто коментуйте записи плагіна, які ви не хочете завантажувати)
  • Видалення плагінів, які ви більше не хочете (використовуючи :PluginClean)

Як бачите, це дуже нагадує менеджер vim-plug менеджерів, згаданий Carpetsmoker. Я не знаю, хто з них став першим, але їх API виглядають дуже схоже на мене, як і процес налаштування .


Приємна річ у Vundle схожа на vim-plug, ви можете зберігати всі свої плагіни у своїх .vimrc, тому при встановленні на новому сервері все, що вам потрібно, - це установка Vundle + ваша .vimrcустановка для всього. Крім того, ви можете коментувати свої плагіни та очищати їх, але зможете прокоментувати їх через місяці чи роки пізніше, коли ви давно забули їхні імена.
icc97

Плюс мені подобається Vundle, тому що він відносно початківців привітний. Це дає в основному лише один спосіб робити речі і працює аналогічно піднесеному тексту.
icc97

1

Швидше за все, ваш плагін буде єдиним .vim-файлом.

Якщо це так, я шукав допомогу та експериментував і з'ясовував наступне. Зсередини vim (командний режим) введіть:

:set runtimepath

Це покаже вам низку каталогів. Деякі з цих каталогів матимуть pluginпідкаталог. Якщо розмістити будь-який .vim-файл у одному з цих pluginпідкаталогів, він автоматично завантажується, коли ви запустите vim з будь-якого місця.

Для мене, на Ubuntu linux, я виявив, що /usr/share/vim/vim74/pluginдобре працював, щоб встановити для всіх користувачів. Вам може знадобитися кореневий дозвіл, щоб скопіювати сюди файл (префікс свого cpчи mvкоманду sudo).


3
ІМХО це не найкраща практика. Зауважте, що у вас є vim74, а це означає, що це версія, що стосується версії, тому оновлення до Vim 8.0 втратить цей плагін. Більш стійким для оновлення способом було б скористатися /etc/vim/для цього (створити його, якщо його немає, і додати цей шлях до, runtimepathякщо він не доступний /etc/vimrc)
grodzik

3
Щоб додати до коментаря @grodzik: Most likely, your plugin will be a single .vim fileЯ не згоден. Переважна більшість плагінів постачається з .txtфайлом, що містить документ, і вам потрібно створити теги, щоб отримати функціональний документ. Також багато плагінів постачаються з autoloadкаталогом. Я думаю, що використання диспетчера плагінів є кращим рішенням, ніж управління runtimepath вручну
statox

-1 /usr/share/vim/vimXX- це час виконання акцій і не місце для конфігурації сайту / плагінів. Натомість конфігурації / плагіни сайтів слід розміщувати там, де $VIMв цій системі є точки (див. :h vimfiles). Зазвичай це /usr/share/vimстосується Ubuntu і має посилання на /etc/vim. Загалом, /usr/local/це фактичне місце для конфігурації сайту за межами менеджера пакунків . Зауважте, що Neovim використовує $XDG_(CONFIG|DATA)_DIRSта siteкаталоги, надаючи кращі стандартні налаштування для конфігурацій сайту.
ZeroKnight

1

Vire використовує найновіший формат упаковки для встановлення плагінів та підтримує Vim та Neovim. Вам не потрібно знати, куди щось іде. Просто надайте vimrc, і Vire подбає про відпочинок.

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