有人可以简要介绍一下它们之间的区别,以便让我确定最适合我的吗?
#1 楼
vim-plug是Vundle的一个不错的替代品,它从技术的角度来看应做些不同,这应该使其速度更快(请参阅本手册)。它具有Vundle的大多数(或全部?)功能。+ruby
,+python
或Neovim中的任何一个的Vim并行更新过程。如果没有可用的,则使用Vimscript退回到顺序模式。延迟加载,以加快启动速度(请参阅此)。
支持OSX,Linux和UNIX系统以及MS Windows。
更新后挂钩例如自动重新编译YCM
开始使用它:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
在您的vimrc中:
call plug#begin()
Plug 'tpope/vim-sensible'
" On-demand loading
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
call plug#end()
然后输入命令
:PlugInstall
以安装列出的插件。
评论
感谢您的推荐;在此之前,我一直拒绝加载器,因为我喜欢加载时的zippy。我必须研究的一件不明显的事情是:在新插件上安装插件;甚至官方文档也掩盖了这一点。
– msw
16-10-22在14:55
虽然我喜欢vim-plug,但要知道它会更改一些vim默认值,您可能会感到惊讶/令人困惑github.com/junegunn/vim-plug/issues/379
–laktak
16 Dec 12'在19:32
对于Windows,vim具有文件夹vimversion编号,例如vim 8.1的vim81。在使用curl的第一步中,确保文件夹为.. \ vim81 \ autoload \ ..而不是.. \ .. vim \ autoload \...。
–斯蒂芬·雅各布
18年6月22日在8:40
@StephenJacob这建议您在Vim安装目录中安装一些东西(通常是\ Program Files(x86)\ vim \ vim81)...?那永远不需要被感动。一切都应安装到用户的vim树中(通常\ Users \ username \ vimfiles ...未嵌入版本号)。那是相当于〜/ .vim的窗口。
– B层
20 May 27 '21:33
#2 楼
病原很简单。从本质上说,它确实可以:从文件夹自动加载插件
为这些插件生成帮助标签
极简主义者
缺点:
其他所有手动完成的操作(安装,更新,删除等)
没有延迟加载
/>
要安装它,请将
pathogen.vim
下载到~/.vim/autoload
:mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
并添加到您的
.vimrc
中: 如果您不想发疯,请仅在需要时致电
:Helptags
。然后将插件添加到
~/vim/bundle
中。评论
需要明确的是,病原体不是插件管理器。它所做的只是管理运行时路径。而已。您添加到〜/ .vim / bundle的所有插件(即默认位置,您可以更改此位置),它将插件的文件添加到vim的运行时路径,以便可以访问它们。如果您没有安装太多插件,则手动安装,更新,删除并不是一个真正的缺点。此外,在更新插件时,您可以选择仅获取更改的一部分,而不更新到插件的最新版本,这给了您很多控制权。
–akshay
2015年2月5日在3:24
@AkshayHegde是的,一旦我开始编写Vundle答案,我就必须返回并从该答案中编辑出“插件管理器”。关于缺点的意见,这就是为什么我继续使用它而不是其他任何东西的原因。
–muru
2015年2月5日,3:30
vim-大流行是病原体的一个很好的补充。它处理插件后面的远程存储库,由Pathogen处理运行时路径。这确实意味着需要两个工具,但是对于“应该”分别处理的不同任务。我发现最令人信服的Pathogen + Pandemic的优点是:无需为捆绑软件处理git子模块。
–贾兰布
2015年2月9日在10:23
我使用病原体作为插件加载器。但是我使用git子模块来控制各个插件的版本。因此,其极简方法非常适合我的用例。其他管理员如何处理版本和插件更新。
–马丁·约克
2015年2月10日,0:40
@JaDogg哦,那是自述文件:“通常,Vim希望您在带有文档的每个目录上运行:helptags(例如::helptags〜/ .vim / doc)。在“运行时路径”中的每个目录上。如果您真的想发疯,甚至可以在vimrc中调用Helptags。我不喜欢发疯。我想说的是,如果您有很多插件,这可能会减慢启动速度。而且,您实际上不需要每次启动时都运行它,每个插件安装/升级一次就足够了。
–muru
2015年5月27日下午4:35
#3 楼
Vundle更复杂。它是插件的软件包管理器,例如apt
或yum
。它可以:搜索插件索引
更新插件
自动生成帮助标签
在自动加载文件夹中保留但不使用插件
清除此类未使用的插件
可在Linux,OSX和MS Windows上运行
要安装:
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
.vimrc:
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
" more Plugin commands
" ...
call vundle#end() " required
filetype plugin indent on " required
要安装插件,请在
Plugin
中使用.vimrc
命令(有关Github自述文件的更多示例): ,然后从
:PluginInstall
(或.vim
)调用vim +PluginInstall +qall
。评论
您链接到的NeoBundle自述文件说该项目现在已被弃用,转而支持github.com/Shougo/dein.vim
–乔纳森·哈特利
16 Jun 23'在2:44
@JonathanHartley是“黑暗”动力的吗?我想我应该已经看到了。
–muru
16 Jun 23'5:36
#4 楼
Vim 8.0和Neovim都有自己的内置软件包管理器。在Vim 8.0中,创建以下目录:.vim/pack/*/start
,其中*
是您要使用的任何名称;例如.vim/pack/jimmy/start
。就像使用病原体一样,将插件克隆到开始目录中。
.local/share/nvim/site/pack/*/start
。从那里执行与Vim相同的操作。根本不需要其他插件管理器。
在Vim或Neovim中,运行
:h packages
可获得更多详细信息。阅读有关颜色的部分,因为它们虽然不多,但有所不同。您在.vimrc
或nvim/init.vim
文件中不需要任何额外说明。希望有帮助。
#5 楼
dein.vim:作为该问题的后续,我将在此处添加由著名的Shougo制作的插件管理器。根据自述文件,该插件具有以下依赖性:
Vim >7.4 or neovim
:虽然保持Vim为最新是一件好事,但对于某些用户而言,不支持以前的版本可能会有问题。这对于程序包管理器来说很常见git
:它不像git 常见。作者声称它比NeoBundle更快。可以在项目的自述页面上找到一个基准。使用类似
rsync
之类的东西,您必须致电::PlugUpdate
。老实说,我还没有找到这种设计选择的例证。 另外,有人创建了一个提供这些“缺少”命令的插件。我不知道这是一个好主意还是与插件管理器的主要思想背道而驰,但作者在doc文件的FAQ中提到了它。 Github(可从vimscript.org方便地访问插件)和本地目录。
插件管理器提供了一些经典功能,例如更新和禁用插件。它还允许在安装时执行挂钩。
请注意,根据FAQ,您似乎必须手动构建其安装的插件的帮助标签。
有趣的一点是,作者希望dein.vim易于测试和维护,因此存储库中还包含一些测试脚本。
最后,我想说这个插件管理器似乎旨在轻巧,快速,这很有趣,但是例如,我认为它不如vim-plug或Vundle友好。
哦,还有,寿果将dein.vim描述为“深色动力Vim / Neovim插件管理器”,如果有人知道这意味着什么,请随时编辑此答案:我很好奇;-)
评论
“黑暗供电”是您将在Shougo的vim插件中找到的短语,该插件具有支持或仅用于NeoVim。
–索利斯(Yonsy Solis)
16 Sep 6 '15:19
我认为“ Dark Powered”一词来自“ Light Vim用户”-仅使用默认功能的用户和“ Dark Vim用户”-尝试将其用作IDE或至少使用许多插件且具有很多功能的用户添加到他们的vimrc文件中的行数(在Shougo的演示文稿中,有关此内容的更多信息-slideshare.net/Shougo/lets-talk-about-neovim-幻灯片6)
– lewiatan
16年9月12日在8:56
@lewiatan:谢谢,我认为您得到了正确的答案。 (有趣的寿吾的演讲顺便说一句)
–statox♦
16年9月12日在9:14
@statox Shougo指出:“ Dein.vim还会减少命令的使用以支持函数调用,这也可能有助于提高性能(不过我不确定)。”
–́Alexej Magura
16-10-17在15:24
Shougo关于插件的强大功能的另一句话,似乎@lewiatan是正确的:-)我认为插件的功能很强大。所以我是“黑暗” Vim大师。 Vim的标准开发者是“ Saint” Vim Master。
–statox♦
16-10-24在12:40
#6 楼
我特别喜欢VAM的自我部署功能:您需要的只是.vimrc
,然后启动vim。 因此,您不需要大多数其他插件管理器使用的
To Install
行(安装插件管理器本身的第一步)。#7 楼
就我而言,我希望我使用插件管理器来支持依赖项。原因是我正在维护多个插件,并且我有很多相互依赖项:通用库所有人使用,模板/片段引擎由C ++套件使用,重构插件也使用ctags库插件,依此类推。要求最终用户执行最多10行来安装他们感兴趣的插件,这在我看来并不是一个好的解决方案。
到目前为止,我只知道两个这样的插件:vim-插件管理器和NeoBundle。在vim官方邮件列表上进行了许多交流之后,VAM将其数据库代码分叉给了vim-pi。我的想法是NeoBundle(以及其他对管理依赖项感兴趣的插件)最终可以利用vim-pi。在这个问题上,它会检查插件版本以安装正确的插件。尽管vim-pi会通过vim.org上的插件定期更新其数据库,并且仍可以使用VAM来表达依赖关系,但似乎不再可能在vim-pi数据库中添加别名:MR / PR不再合并
AFAIK,这些插件都无法在后台/并行中克隆/安装/更新插件。老实说,由于我没有安装新的vim环境,也没有更新我每月安装一次的插件,所以我不在乎。他们当然会更新
'helptags'
,照顾'rtp'
,依此类推。评论
vim-plug的自述文件中有一个示例说“组依赖性”。您是否尝试过,或者与VAM / NeoBundle的方法不同?
–muru
16-2-29在13:43
我错过了vim-plug文档中的组依赖关系。我确实看到他们已经从代码库中删除了支持依赖项的尝试。关于组依存关系,我看不出它有什么帮助。最终用户不应该声明依赖关系。它们应由插件编写者声明。如果您通过lh-cpp插件查看并仔细查看,您会发现依赖关系不是线性的。这是一个有向图,它必须是非循环的,以避免出现问题。
–卢克·赫米特(Luc Hermitte)
16-2-29在14:37
到目前为止,我已经使用VAM十多年了,对此我感到很满意。但是,我使用了vim-flavor,因为从travis集成起来要简单得多-为了测试我的插件。不幸的是,两者都使用不同的语法来声明依赖关系。
–卢克·赫米特(Luc Hermitte)
16-2-29在14:40
仅供参考:NeoBundle的开发已停止(自2016年2月23日起)。它推荐其继任者Dein.vim(由同一作者)。
– Peter V.Mørch
17 Mar 27 '17 14:07
#8 楼
这些插件管理器中的大多数在管理插件方面做得很出色,但让您烦恼管理vimrc
。如果您有多台计算机,并且希望使用相同的配置,那么Vire会非常简单。您不需要git或弄清楚子模块,也不需要任何额外的精力来进行设置或迁移。 /> pip install vire
将您现有的
vimrc
作为要点发布到Github上并进行维护如果在Windows上,请
vire -i
安装最新的Vim或(带有-i -n
的Neovim)删除任何现有的插件函数调用并定义注释掉的调用以安装任何插件
" Plug 'tpope/vim-unimpaired'
vire gistID
然后,只要您希望更新
vire
或插件或使用vimrc
更新插件,就可以运行-i
Vire利用Vim / Neovim的
pack
功能加载插件。您也可以继续使用现有的插件管理器,但如果需要,可以使用Vire仅安装Vim,vimrc
和插件管理器本身。#9 楼
对于想要使用Pathogen的完整插件管理器的人,还有apt-vim。您可以使用curl -sL https://raw.githubusercontent.com/egalpin/apt-vim/master/install.sh | sh
安装它(如此处所述:
https://www.linuxsecrets.com/1715-vi-editor-tips-trick-and-secrets-into-the-vi-vim -editor-part-ii
)。安装后,您只需键入
apt-vim install
,然后输入软件包存储库的名称即可,类似于Ubuntu apt软件包管理器。评论
这本质上是仅链接的答案。如果您可以详细了解如何安装和使用apt-vim,则可以接受。
– Tumbler41
17-10-6在16:45
我更新了。确实,我认为这应该是有关病原菌的帖子的评论,但我的观点不足以发表评论
–忧郁日
17-10-6在22:55
链接缺失到插件。还是建议使用curl URL | sh的插件。我绝不建议任何人从Internet运行一些随机代码。确实,这是一个不好的安全习惯。
–克里斯蒂安·布拉班特(Christian Brabandt)
17-10-7在7:14
#10 楼
我一直在寻找一种使用pathogen
的方法,但可以轻松更新并使其可移植,所以也许bash
脚本可能会有用(使用vim-plug
功能)-一个示例.vimrc.bundle
-#!/bin/sh
# inspired by https://github.com/thoughtbot/dotfiles/blob/master/hooks/post-up
if [ ! -e "$HOME"/.vim/autoload/pathogen.vim ]; then
curl -fLo "$HOME"/.vim/autoload/pathogen.vim --create-dirs \
https://raw.githubusercontent.com/tpope/vim-pathogen/master/autoload/pathogen.vim
fi
if [ -e "$HOME"/.vim/autoload/plug.vim ]; then
vim -E -s +PlugUpgrade +qa
else
curl -fLo "$HOME"/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
fi
vim -u "$HOME"/.vimrc.bundles +PlugUpdate +PlugClean! +qa
评论
您可以为此添加一些详细信息吗? OP提出的主要问题是“有人可以简要概述[包装管理器]中的区别,以便我可以决定哪种最适合我”吗?您的提交内容如何帮助您回答?您到底要添加哪些没有的病原体?那种事
– B层
17年11月12日在1:05
评论
stackoverflow.com/questions/2458398/…这不是一个答案,但可能值得考虑:SpaceVim。