Vim 的包(插件)管理

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

34472 次浏览

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

  1. Vim-addon-manager : 轻松管理和更新插件; Marc Weber (@vim.org)的插件
  2. GitHub 上马克 · 韦伯的个人资料; 他有一些与 V-a-m 相关的回购协议
  3. Vim-plugin-manager @Vim wiki ——页面的名称不同,但实际上是同一个插件

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

目前,Vim.org + Vimball + GetLatestVimScripts 更适合用于管理 vim 插件。

:h GetLatestVimScripts

它的缺点是:

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

还有病原体 Vim

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

虽然它不完全是你所要求的,它提供了一种方法来管理结帐从您的 github 和 bitbucket 的。

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

在 vim.org 上有一些其他的插件可以执行这个任务,尽管我现在找不到它们

我现在使用 VimPlug我自己的 Vim 设置,我绝对推荐它。安装非常简单,而且快速,漂亮,有效!

VimPlug video

在这个问题的答案中,我曾经推荐使用 Vundle,但是现在已经不再维护 Vundle 了,而且还有更好的选择。

通过将插件文件分散到整个个人 vim 运行时目录,vim 的插件管理在传统方法中曾经是一个痛苦的问题,例如。* nix 系统的 ~/.vim。一旦插件被安装,它很难被更新,因为没有简单的方法来删除过时的插件文件,这是一个必要的步骤。

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

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

有很多实现(Vim-Scripts.org有一个所有可用工具的 综合摘要) ,我将只按照它们的创建顺序谈论几个主要的工具。

Vimball 是解决这个问题的第一次尝试,实际上它是一个半官方的解决方案,很长一段时间内许多插件都与 *.vba包一起发布。与 获取最新的 VimScripts相结合,形成了 vim 插件管理的传统方式。

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

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

然后,出现了 Tom Link 的 Tplugin(Github Repo) ,它通过只在调用相关命令或函数时才加载插件来改善病原体,类似于 被需要。此外,它还有一些依赖性解决机制,看起来不错。

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

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

这里是 讨论VIM 插件管理器之间的另一个比较的 VAM 的作者马克韦伯。

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

所有这些答案看起来都很古老,正如 类似问题的答案中所描述的,

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

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

我已经使用它一两年了,它看起来很简单,对我来说很容易。

下面是一些关于它的优势和如何使用它的资源: