如何在Vim中安装插件?

有关系吗:


我使用vi还是Vim?
我是否使用gVim?
我正在使用哪个版本的Vim?
我的操作系统是什么?


#1 楼

要安装插件,我们需要知道它以什么形式出现。它可以是:


单个.vim文件
Vimball文件
一组文件在遵循预期结构的目录(plugin/*syntax/*等)中(什么使插件Vundle兼容并且其他插件管理器可以互换?)

单个.vim文件应该放置在.vim/plugin中目录。

可以通过在Vim中打开并运行:source %来安装Vimball文件。

可以将标准目录布局中的一组文件复制到以下位置来安装: .vim或使用插件包管理器。

插件可能取决于某些功能。因此:


使用Vi或Vim可能会很重要,
是否使用gVim可能会很重要(gVim通常在编译时启用了更多功能时间比同一个发行版上的Vim要短。)
对您使用哪个版本的Vim可能很重要,因为可能是在您的Vim版本之后添加了功能。
对于您所使用的OS可能很重要,特别是如果插件在外部命令中调用。

对于大多数插件,这可能并不重要。

评论


如果您使用的是Vi,则绝对重要-Vi并不存在插件的概念。当然,在任何现代机器上键入vi可能只会在关闭某些功能的情况下启动vim。我怀疑这些天有很多人可以使用实际的Vi。

–tommcdo
15年2月13日在5:04

#2 楼

vim-plug

我喜欢使用vim-plug插件管理器。

手动安装插件的问题在于
删除插件非常困难;您通常在不同的目录中有几个不同的文件,必须手动找到并删除它们。

升级问题也同样困难:如果autoload/old-name.vim得到
重命名为autoload/new-name.vim,该怎么办?现在,您有了新旧版本的插件。

vim-plug通过将每个插件存储在其自己的目录中来解决此问题;它还
包含用于轻松安装/删除插件的命令,因此您不必为
解压缩插件之类而烦恼。

vim-的主要优势即插即用
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 for MS
Windows中。

您可以在plug#begin()调用之前将常见问题解答中的
片段添加到
您的vimrc文件中:

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软件包管理器之间有什么区别?

评论


vim-plug具有的其他最重要的优点之一是并行安装/更新插件

–r3bo0t
16年11月17日在17:05

“这些脚本在GitHub上进行了镜像,因此无需这样做。”不幸的是,刮板很久以前就停止工作了。 github.com/vim-scraper/vim-scraper/issues/…

–布鲁
17年3月14日在19:19



@Bluu是的,我去年联系了那个维护者;有一些技术需要更新,没有人真正加紧进行更新:-/虽然它仍然有些有用,因为许多脚本并不是经常更新(尤其是那些不在GitHub上的脚本)。

–马丁·图尔诺伊(Martin Tournoij)
17年3月14日在20:26

#3 楼

Vim 8+ / Neovim

版本8引入了一种新的软件包机制,该机制在撰写本文时(2017年)基本取代了对现有插件管理器(病原体,vim-plug,vundle等)的需求。

来自文档:


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时,该插件将自动加载。

评论


如果.vim受版本控制,则最好使用git的子模块安装插件。请参见shapeshed.com/vim-packages/#adding-a-package。

– Arch Stanton
18年2月11日在22:26

如果有基于时间的答案,那么这将是截至目前的当前公认答案。

– Amin NAIRI
19年4月8日在18:11

这个解释中也有Neovim部分吗?

–GWD
20/12/29在3:09



#4 楼

Pathogen

Pathogen是一个运行时路径管理器,它在Vim中加载插件。它使插件安装变得简单。

注意:如果使用Windows,请将~/.vim替换为$HOME\vimfiles


pathogen.vim复制到~/.vim/autoload/pathogen.vim
创建~/.vim/bundle目录(如果尚不存在)。

.vimrc的开头添加以下行:

execute pathogen#infect()



您完成了!要添加插件时,只需将整个插件目录复制到~/.vim/bundlegit clone即可。例如:

cd ~/.vim/bundle
git clone https://github.com/tpope/vim-surround


*警告:如果您的插件以.vim文件的形式出现,则它不适用于Pathogen。而是将其复制到~/.vim/plugin(如果该目录不存在,则可能必须创建此目录)。


评论


注意:病原体不是插件管理器。

– romainl
15年2月8日在17:48

或git子模块添加(而不是git clone),如果您的vim配置已经是您自己的git项目的一部分。

–马丁·约克
2015年2月11日在5:53



@romainl那是什么?

– RodrikTheReader
17年8月22日在7:05

它是一个运行时路径管理器。正如它管理的runtimepath选项,仅此而已。它根本不涉及更新,添加,检索,删除插件。

– romainl
17年8月22日在8:03

另请参阅@romainl关于使用病原体的优秀要点。

–icc97
18-10-5在22:01

#5 楼

让我们不要忘记伟大而强大的Vundle!

Vundle是一个完整的插件管理器,具有以下功能:


搜索插件(使用:PluginSearch
安装插件(使用:PluginInstall
更新插件(使用:PluginUpdate
管理.vimrc中的插件加载路径(简单地注释掉不想加载的插件条目)
删除您不再想要的插件(使用:PluginClean

您可以看到,这很像Carpetsmoker提到的vim-plug Manager。我不知道哪一个最先出现,但是它们的API与设置过程非常相似。

评论


关于Vundle的好处是类似于vim-plug,您可以将所有插件存储在.vimrc中,因此,在新服务器上安装时,您需要的是Vundle安装+ .vimrc以安装所有内容。另外,您可以注释掉插件并“清理”它们,但是当您早已忘记它们的名称时,便可以在几个月或几年后对其进行注释。

–icc97
18-10-5在21:50

另外,我喜欢Vundle,因为它相对于初学者来说比较友好。它几乎只提供一种做事方式,并且以与Sublime Text类似的方式工作。

–icc97
18-10-5在21:57

#6 楼

很可能,您的插件将是单个.vim文件。

如果是这种情况,我搜索了帮助并进行了试验并弄清楚了以下内容。在vim(命令模式)中,键入:

:set runtimepath


这将向您显示一系列目录。
其中一些目录具有plugin子目录。将任何.vim文件放在这些plugin子目录中的任何一个时,都会在您从任何地方启动vim时自动加载该文件。 。您可能需要root权限才能将文件复制到此处(在/usr/share/vim/vim74/plugincp命令前面加上mv)。

评论


恕我直言,这不是最佳做法。请注意,您拥有vim74,这意味着它是特定于版本的,因此升级到Vim 8.0将会失去该插件。更加防升级的方法是为此使用/ etc / vim /(如果不存在则创建它,如果/ etc / vimrc中不存在,则将该路径添加到runtimepath中)

–grodzik
16-11-17在8:03



在@grodzik中添加注释:很可能,您的插件将是一个我不同意的单个.vim文件。绝大多数插件都带有一个包含文档的.txt文件,您需要生成标签才能获取功能齐全的文档。另外,许多插件都带有自动加载目录。我认为使用插件管理器比手动管理运行时路径更好

–statox♦
16-11-17在8:47



-1 / usr / share / vim / vimXX是库存运行时,而不是站点配置/插件的位置。相反,应该在$ VIM指向该系统上的任何位置放置站点配置/插件(请参见:h vimfiles)。通常,这是/ usr / share / vim,Ubuntu就是这种情况,并保存到/ etc / vim的符号链接。通常,/ usr / local /是在程序包管理器外部进行站点配置的实际位置。注意Neovim利用$ XDG_(CONFIG | DATA)_DIRS和站点目录,为站点配置提供了更好的现成默认值。

–零骑士
18-11-30在4:46



#7 楼

Vire利用最新的包格式来安装插件,并支持Vim和Neovim。您无需知道任何地方。只需提供vimrc,然后由Vire负责其余的工作。