Як встановити плагін у 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.