Vim的包(插件)管理

nti*_*mes 75 vi vim packages package-managers vim-plugin

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

Jos*_*ein 83

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

VimPlug视频

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


wey*_*amz 36

通过在整个个人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启动时地方在自己的目录插件文件,加载插件,搜索/安装/更新/非原命令行删除插件,用纯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插件管理器的讨论另一种比较.

  • 按照这个伟大的答案,[Neobundle](https://github.com/Shougo/neobundle.vim)似乎是Vundle的逻辑演变 (2认同)

mic*_*ael 25

还有pathogen.vim

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

虽然它不是你要求它提供了一种方法来管理你的github和bitbucket的结账.

这很好,因为它分离了插件的目录结构.因此,您可以签出插件的存储库并获得正确的版本控制,而不是依赖维护者来更新代码.此外,它不依赖于插件作者根据引用的其他选项设置/打包.

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


Mic*_*zyk 12

我现在正在使用手工制作的设置,但我一直告诉自己有时候给这个镜头(链接都与同一个插件有关):

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

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


Sig*_*ied 8

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

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

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

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

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

  • 令人惊讶的是这个答案没有得到更多的支持。:/ (2认同)
  • 我对我所有的答案都有这样的感觉:) (2认同)

Max*_*Kim 5

Vim.org + Vimballs + GetLatestVimScripts是内置的,目前可以管理vim插件.

:h GetLatestVimScripts
Run Code Online (Sandbox Code Playgroud)

关于它的坏事:

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

  • 如果你能在Windows上安装Vim,你可以在Windows上安装wget :) (7认同)