Vim的软件包(插件)pipe理

Emacs 24 看起来会有一个包pipe理器。 Vim有什么软件包pipe理选项?

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

VimPlug视频

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

vim的插件pipe理通过在整个个人vim运行时目录中传播插件文件,成为传统方式的一个难题。 ~/.vim for * nix系统。 一旦安装了插件,很难更新,因为没有简单的方法来删除过时的插件文件,这是一个必要的步骤。

在开始的时候,我想列举一下我个人对于一个好的插件pipe理工具的要求:

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

这里有很多的实现( Vim-Scripts.org对所有可用的工具有一个全面的总结 ),我只会根据它们的创build顺序来讨论几个主要的工具。

vimball是解决这个问题的第一个尝试,实际上它是一个半官方的解决scheme,很多插件长期与*.vba包装在一起。 与GetLatestVimScripts相结合,这就形成了vim插件pipe理的传统方式。

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

  • 现代Vim与病原体的configuration
  • 与git子模块和病原体同步插件

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

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

Finnaly Gmarik从Ruby的Bundler创build了一个Tim Pope病菌的继任者Vundle ( Github Repo ),它提供了更好的用户界面和更多的pipe理function。 Vim的Vundle和Bundler的Ruby项目非常相似。 通过在vimrc中声明所需的插件,vundle通过ex命令行界面处理所有其余的事情,包括安装/更新和删除插件。 最重要的是,vundle是在纯VimL中实现的。 在vundle的帮助下,可以用一个简单的vimrc文件来pipe理几台计算机上的vimconfiguration。 作为一个现代的插件pipe理工具,vundle依赖于Git,并可以直接从Github安装插件。 Vundle还为search和安装插件提供了一个奇特的交互式界面。

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

  • Vim的Bundler Vundle
  • Sane Vim插件pipe理

下面是VAM作者MarcWeber 对vim插件pipe理器 的讨论和比较 。

还有pathogen.vim

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

虽然它不完全是你要求它提供了一个手段来pipe理你的github和bitbucket的签出。

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

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

我现在正在使用一个手工设置,但是我一直告诉自己有时候这样做(链接都是用同一个插件做的):

  1. vim-addon-manager :轻松pipe理和更新插件; Marc Weber的插件(@ vim.org)
  2. Marc Weber的GitHub简介 ; 他有一些vam相关的回购
  3. Vim-plugin-manager @ Vim wiki – 页面的名称是不同的,但实际上是相同的插件

再一次,我还没有真正尝试过这个,但它肯定看起来很有希望。

Vim.org + Vimballs + GetLatestVimScripts是现在build立的pipe理vim插件的方式。

 :h GetLatestVimScripts 

关于它的坏事情:

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

检查一下vim的最终包pipe理器NeoBundle 。 这是Vundle的一个分支。

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