Emacs 24看起来将有一个程序包管理器。Vim有哪些软件包管理选项?
Emacs 24看起来将有一个程序包管理器。Vim有哪些软件包管理选项?
Answers:
通过在整个个人vim运行时目录中分布插件文件,传统上,vim的插件管理很痛苦。~/.vim
用于* nix系统。一旦安装了插件,就很难更新,因为没有简单的方法可以删除过时的插件文件,这是必要的步骤。
首先,我想列出我个人对优质插件管理工具的要求:
那里有很多实现(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)的tplugin(Github Repo),它通过仅在调用相关命令或函数时才加载插件来改善病原体,类似于AsNeeded。而且,它具有某种依赖关系解决机制,看起来很不错。
最后,Gmarik在Ruby的Bundler的启发下创建了Vundle(Github Repo),它是Tim Pope病原体的继承者,它提供了更好的用户界面和其他管理功能。从Vundle到Vim与与Bundler到Ruby Project非常相似。通过在vimrc中声明需要的插件,vundle可以通过ex命令行界面处理所有其余工作,包括安装/更新和删除插件。最重要的是,vundle是在纯VimL中实现的。借助vundle,仅使用一个简单的vimrc文件就可以在多台计算机上管理vim配置。作为现代的插件管理工具,vundle依赖于Git,可以直接从Github安装插件。Vundle还提供了一个精美的交互式界面,用于搜索和安装插件。
尽管Vundle不能完全满足我的要求,但确实可以朝正确的方向前进,这对我来说似乎是一个很好的起点。
这是VAM的作者MarcWeber进行的讨论以及vim插件管理器之间的另一个比较。
还有病原体.vim
http://www.vim.org/scripts/script.php?script_id=2332
尽管它并不是您所要求的,但它提供了一种方法来管理github和bitbucket的签出。
这很好,因为它可以分隔插件的目录结构。因此,您可以签出插件的存储库并获得适当的版本控制,而不必依赖维护者来更新代码。而且,它不依赖于插件作者根据引用的其他选项进行设置/打包。
vim.org上还有其他一些插件可以执行此任务,尽管目前无法找到它们。
我现在使用的是手工制作的设置,但是我一直告诉自己有时可以试一下(所有链接都与同一个插件有关):
再一次,我自己还没有实际尝试过,但是看起来确实很有希望。
Vim.org + Vimballs + GetLatestVimScripts目前被认为是用来管理vim插件的。
:h GetLatestVimScripts
坏事:
我写了一个名为“ vimpyre”的工具,它可以使用GitHub服务搜索,安装,卸载,更新vim插件。https://github.com/pct/vimpyre
所有这些答案似乎都很老了。如对此类似问题的答案所述,
Vim 8.0和Neovim都有自己的内置软件包管理器
完全不需要另一个插件管理器。
我已经使用了一年或两年,对我来说似乎很简单。
以下是有关其优势以及使用方法的一些资源: