83

Emacs 24看起来会有一个包管理器。Vim 有哪些包管理选项?

4

7 回答 7

87

我现在将VimPlug用于我自己的Vim 设置,我绝对推荐它。安装非常简单,而且快速、美观、有效!

VimPlug 视频

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

于 2011-02-21T20:58:33.870 回答
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和其他工具(例如vimer)托管的 vim-scripts.org,它形成了管理 vim 插件的现代方式。有很多关于这个话题的文章和视频。

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

然后,出现了 Tom Link 的tplugin ( Github Repo ),它通过仅在调用相关命令或函数时才加载插件来改进病原体,类似于AsNeeded。此外,它具有某种看起来不错的依赖解决机制。

Finnaly,Gmarik 创建了Vundle ( Github Repo ),它是 Tim Pope 病原体的继承者,灵感来自 Ruby 的Bundler,它提供了更好的用户界面和额外的管理功能。Vundle 与 Vim 非常相似,就像 Bundler 与 Ruby 项目一样。通过在 vimrc 中声明所需的插件,vundle 通过 ex 命令行界面处理所有其余的事情,包括安装/更新和删除插件。最重要的是,vundle 是在纯 VimL 中实现的。在 vundle 的帮助下,只需一个简单的 vimrc 文件就可以跨多台计算机管理 vim 配置。作为现代插件管理工具,vundle 依赖 Git,可以直接从 Github 安装插件。Vundle 还为搜索和安装插件提供了精美的交互界面。

虽然 Vundle 并没有完全满足我的要求,但它确实朝着正确的方向前进,这对我来说似乎是一个很好的起点。

这是VAM 的作者 MarcWeber对 vim 插件管理器的讨论另一个比较。

于 2012-10-23T07:29:24.030 回答
25

还有pathogen.vim

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

尽管它并不完全符合您的要求,但它提供了一种管理 github 和 bitbucket 的结帐的方法。

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

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

于 2010-03-17T23:01:02.953 回答
12

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

  1. vim-addon-manager : 轻松管理和更新插件;Marc Weber (@vim.org) 的插件
  2. Marc Weber 的GitHub 个人资料;他有许多与 vam 相关的 repos
  3. vim-plugin-manager @vim wiki -- 页面名称不同,但实际上是同一个插件的意思

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

于 2010-03-16T22:00:23.260 回答
5

Vim.org + Vimballs + GetLatestVimScripts 目前是首选内置方式来管理 vim 插件。

:h GetLatestVimScripts

它的坏处:

  • 不支持 Windows(GetLatestVimScripts 使用 wget AFAIR)
  • vim.org 有很多不支持 GLVS 和 Vimball 的插件。
于 2010-03-17T06:45:40.550 回答
5

所有这些答案似乎都很古老。如this answer to a similar question中所述,

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

根本不需要另一个插件管理器。

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

以下是一些有关其优点以及如何使用它的资源:

于 2020-06-26T10:59:21.543 回答
3

查看NeoBundle,vim 的终极包管理器。它是Vundle的一个分支。

于 2013-04-23T10:01:21.397 回答