Как мне установить плагин в 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 .

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

Проблемы с обновлением также сложны: что если их 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.

Вы можете добавить этот фрагмент из FAQ в ваш файл 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/issues/…
Bluu
@Bluu Да, я связался с сопровождающим в прошлом году; Есть некоторые технические моменты, которые нуждаются в обновлении, и никто на самом деле не подошел, чтобы сделать упомянутое обновление: - / Тем не менее, это все еще несколько полезно, поскольку многие скрипты обновляются не так часто (особенно те, которые не на GitHub).
Мартин Турной
25

патогенный микроорганизм

Pathogen - это менеджер путей выполнения, который загружает плагины в 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. * Предостережение: если ваш плагин представлен в виде .vimфайла, он не будет работать с Pathogen. ~/.vim/pluginВместо этого скопируйте его (возможно, вам придется создать этот каталог, если он не существует).

Дверная ручка
источник
5
Примечание: pathogen не является менеджером плагинов.
romainl
или git submodule add(вместо git clone), если ваша конфигурация vim уже является частью вашего собственного проекта git.
Мартин Йорк,
@romainl, что это тогда?
RodrikTheReader
3
Это менеджер пути выполнения. Как в нем управляет runtimepathопцией и все. Он вообще не занимается обновлением, добавлением, извлечением, удалением плагинов.
Ромен
1
Также см. Превосходную суть @romainl по использованию Pathogen .
icc97
23

Vim 8+ / Неовим

Версия 8 представляет новый механизм пакетов, который в значительной степени заменяет необходимость в существующих менеджерах плагинов (pathogen, 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 .
Арка Стэнтон
Если бы был ответ на основе времени, это был бы текущий принятый ответ на сегодняшний день.
Амин НАИРИ
12

Давайте не будем забывать о великом и могучем Вандле !

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

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

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

Коди Полл
источник
Хорошая вещь в Vundle похожа на vim-plug, вы можете хранить все свои плагины на вашем .vimrc, поэтому при установке на новый сервер все, что вам нужно, это установка Vundle + ваша, .vimrcчтобы установить все. Кроме того, вы можете закомментировать свои плагины и «очистить» их, но сможете комментировать их спустя месяцы или годы спустя, когда вы давно забыли их названия.
icc97
Плюс мне нравится Vundle, потому что он относительно новичок. Это дает в значительной степени только один способ делать вещи и работает аналогично Sublime Text.
icc97
1

Скорее всего, ваш плагин будет одним .vim файлом.

Если это так, я искал помощь, экспериментировал и выяснил следующее. В vim (командный режим) введите:

:set runtimepath

Это покажет вам серию каталогов. Некоторые из этих каталогов будут иметь pluginподкаталог. Помещение любого файла .vim в один из этих pluginподкаталогов приведет к его автоматической загрузке при запуске vim из любого места.

Для меня, на Ubuntu Linux, я обнаружил, что /usr/share/vim/vim74/pluginработает хорошо, чтобы установить для всех пользователей. Вам может потребоваться разрешение root для копирования файла сюда (с префиксом 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 позаботится обо всем остальном.

genotrance
источник