有关系吗:
我使用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可能很重要,特别是如果插件在外部命令中调用。
对于大多数插件,这可能并不重要。
#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 楼
PathogenPathogen是一个运行时路径管理器,它在Vim中加载插件。它使插件安装变得简单。
注意:如果使用Windows,请将
~/.vim
替换为$HOME\vimfiles
。将
pathogen.vim
复制到~/.vim/autoload/pathogen.vim
。创建
~/.vim/bundle
目录(如果尚不存在)。在
.vimrc
的开头添加以下行:execute pathogen#infect()
您完成了!要添加插件时,只需将整个插件目录复制到
~/.vim/bundle
或git 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/plugin
或cp
命令前面加上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
评论
如果您使用的是Vi,则绝对重要-Vi并不存在插件的概念。当然,在任何现代机器上键入vi可能只会在关闭某些功能的情况下启动vim。我怀疑这些天有很多人可以使用实际的Vi。
–tommcdo
15年2月13日在5:04