Vim的软件包(插件)管理


78

Emacs 24看起来将有一个程序包管理器。Vim有哪些软件包管理选项?


1
在这种情况下,什么是包管理器?像VimExplorer一样?
马特·鲍尔

可以从中央存储库安装和管理第三方插件的工具。
n次

1
好吧,vim有一个中央存储库(vim.org),一个软件包系统(vimballs)和脚本,这些脚本检查您是否拥有最新的和最好的(其中的几个,现在不记得名字了)...什么您还想要什么?:-)
Rook

3
我不了解vimball,如果我输入错了,请纠正我,但看来您仍然需要a)访问该网站,b)下载vba文件-如果存在,似乎不是这种情况大多数插件-c)然后才运行vimball。不完全是我的想法(cf RubyGems):)
ntimes 2010年

Answers:


85

我现在正在自己的Vim设置使用VimPlug,我绝对推荐这样做。安装非常简单,并且快速,美观,有效!

VimPlug视频

我曾经在这个答案中推荐Vundle。但是Vundle不再维护,还有更好的选择。


作者停止维护vundlegmarik.info/blog/2014/02/04/…。您仍然可以在github上看到自己的贡献,但也许是更有知识的人可以评论vundle的未来。
kirill_igum 2014年

他似乎对NeoBundle大多只是复制他的代码而不是制作叉子感到恼火。但是,如果他不再维护它,那么NeoBundle可能会接手?
Jostein 2014年

GitHub仓库对我来说似乎很活跃。另外,在您更新的链接注释中,似乎有人加紧帮助。

我对Vundle的痛苦是,它仅使用git(主要是github项目)作为源。但是,当您在此处搜索著名的项目(例如TagList)时,会从vim官方插件站点获得一堆“镜像”。对于安全性,我不信任。因此,我会继续使用旧的Pathogen和我自己的github维护的bundle目录
KFL 2014年

@KFL VAM有一个插件索引,从理论上讲,无论是在git repo还是在vim.org上,每个插件的规范来源都最多。它是社区维护的,但是每个插件只有一个存储库,所以这是一个开始。(而且,您可以自己更新它,因为索引是一个git repo。)
jpaugh

38

通过在整个个人vim运行时目录中分布插件文件,传统上,vim的插件管理很痛苦。~/.vim用于* nix系统。一旦安装了插件,就很难更新,因为没有简单的方法可以删除过时的插件文件,这是必要的步骤。

首先,我想列出我个人对优质插件管理工具的要求:

  1. 应以纯VimL编写
  2. 应将插件安装到自己的目录中
  3. 应该在vim启动时自动加载插件,可以根据需要很好地加载
  4. 应具有安装,更新和删除插件的内置方法
  5. 很高兴拥有内置的搜索所需插件的方法
  6. 应该能够在文件中声明所需的插件
  7. 很高兴拥有依赖性解决机制

那里有很多实现(Vim-Scripts.org包含了所有可用工具的全面摘要),我仅按其创建顺序来讨论几种主要工具。

vimball是解决该问题的第一个尝试,实际上是半官方的解决方案,很多插件*.vba在很长一段时间内都与软件包一起提供。与GetLatestVimScripts结合使用,形成了vim插件管理的传统方式。

即使如此,问题仍然存在,直到Tim Pope病原体Github Repo)出现为止,该病原体将每个插件放置在其自己的目录中,并通过修改vim的“ rtp(runtimepath)”在启动时加载它们。这是一个巨大的进步-结合git / github和其他工具(例如vimmer托管的vim-scripts.org,它形成了管理vim插件的现代方式。有很多有关此主题的文章和视频。

作为管理插件的插件,病原体仍缺少一些核心功能,例如搜索,安装,更新和删除插件。结果,VAM(Vim-Addon-Manager)Github Repo)退出了市场。VAM提供了几乎所有插件管理器所需的一切:将插件文件放置在其自己的目录中,在vim启动时加载插件,在ex命令行中搜索/安装/更新/删除插件,以纯VimL编写,维护自己的插件中央信息数据库,甚至解决了插件依赖性。看来VAM应该是我们作为功能齐全的vim插件管理器所需要的,但是从我的角度来看,VAM所采用的方法有点过时,有时甚至是过度设计的。虽然它仍然是一个很棒的插件,值得使用。

然后,出现了汤姆·林克(Tom Link)的tpluginGithub Repo),它通过仅在调用相关命令或函数时才加载插件来改善病原体,类似于AsNeeded。而且,它具有某种依赖关系解决机制,看起来很不错。

最后,Gmarik在Ruby的Bundler的启发下创建了VundleGithub Repo),它是Tim Pope病原体的继承者,它提供了更好的用户界面和其他管理功能。从Vundle到Vim与与Bundler到Ruby Project非常相似。通过在vimrc中声明需要的插件,vundle可以通过ex命令行界面处理所有其余工作,包括安装/更新和删除插件。最重要的是,vundle是在纯VimL中实现的。借助vundle,仅使用一个简单的vimrc文件就可以在多台计算机上管理vim配置。作为现代的插件管理工具,vundle依赖于Git,可以直接从Github安装插件。Vundle还提供了一个精美的交互式界面,用于搜索和安装插件。

尽管Vundle不能完全满足我的要求,但确实可以朝正确的方向前进,这对我来说似乎是一个很好的起点。

这是VAM的作者MarcWeber进行的讨论以及vim插件管理器之间的另一个比较


2
遵循这个好答案之后,Neobundle似乎是从Vundle
Waiting for Dev ...

很高兴了解vim软件包管理器的发展历史-非常有用,很高兴我使用Vundle,因为我没有复杂的要求。
RichVel

相反,@ RichVel,我很高兴我使用VAM,因为我有一个非常复杂的要求:我希望日常使用起来非常简单。添加新插件甚至很容易,只要它们还没有在索引中全部准备好(vim-pi
jpaugh

25

还有病原体.vim

http://www.vim.org/scripts/script.php?script_id=2332

尽管它并不是您所要求的,但它提供了一种方法来管理github和bitbucket的签出。

这很好,因为它可以分隔插件的目录结构。因此,您可以签出插件的存储库并获得适当的版本控制,而不必依赖维护者来更新代码。而且,它不依赖于插件作者根据引用的其他选项进行设置/打包。

vim.org上还有其他一些插件可以执行此任务,尽管目前无法找到它们。


12

我现在使用的是手工制作的设置,但是我一直告诉自己有时可以试一下(所有链接都与同一个插件有关):

  1. vim-addon-manager:轻松管理和更新插件;Marc Weber(@ vim.org)的插件
  2. Marc Weber的GitHub个人资料; 他有一些与VAM相关的回购协议
  3. Vim-plugin-manager @ Vim Wiki-页面名称不同,但实际上相同的插件意味着

再一次,我自己还没有实际尝试过,但是看起来确实很有希望。


5

Vim.org + Vimballs + GetLatestVimScripts目前被认为是用来管理vim插件的。

:h GetLatestVimScripts

坏事:

  • 不支持Windows(GetLatestVimScripts使用wget AFAIR)
  • vim.org有很多不支持GLVS和Vimball的插件。

7
如果您已经能够在Windows上安装Vim,则可以在Windows上安装wget :)
wRAR 2010年

3

查看NeoBundle,这是vim的终极软件包管理器。这是Vundle的叉子。


4
两者之间有什么区别?
彼得·吉布森

来自NeoBundle自述文件:“ NeoBundle的积极开发已停止。唯一的未来更改是错误修复。”
icc97

2

我写了一个名为“ vimpyre”的工具,它可以使用GitHub服务搜索,安装,卸载,更新vim插件。https://github.com/pct/vimpyre


3
FWIW,自从github移到新的API之后,vimpyre不再起作用。他们也正在真的吝啬速率限制和阻止未认证的API查询.. :(
synthesizerpatel

0

所有这些答案似乎都很老了。如对此类似问题的答案所述

Vim 8.0和Neovim都有自己的内置软件包管理器

完全不需要另一个插件管理器。

我已经使用了一年或两年,对我来说似乎很简单。

以下是有关其优势以及使用方法的一些资源:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.