有效的管理你的vim插件(有效的管理你的vim插件)
有效的管理你的vim插件
作者: yetist 邮箱: yetist@gmail.com传统的vim plugin使用方式
我们先来回顾一下传统的vim plugin 管理方式 。
安装: 要安装一个插件 ,首先要从网络上下载回来 ,然后解压 、并放在~/.vim/下合适的目录中 ,如plugin 、syntax 、ftplugin等 。 升级: 经常使用的一些插件 ,可能需要过一段时间去vim.org上面看看有没有新的版本 ,如果有的话 ,使用和安装相同的方式来解压覆盖 ,从而完成更新工作 。 卸载: 相对于安装和更新 ,这个就比较麻烦了 ,尤其是你有太多的插件的话 ,你无法确定某个插件到底安装了哪些文件 ,最坏的情况下 ,你可能需要下载一个原始版本来做参考,然后从你的~/.vim/目录中把它们删除干净 。 多台电脑保持同步: 通常的方法是把原来的~/.vim目录做个备份 ,然后在需要的时候把它整个复制过去 。时间长了 ,这会产生问题,如果两台电脑中都做了修改(分别安装了不同的插件或更新了某个插件) ,这时将无法准确的保持同步 。从长期使用vim及对vim plugin的经历中 ,我感觉这是一种很费时费力且效率低下的工作 。做个不太恰当的比喻 ,vim 插件的安装方式就像在windows下面安装软件一样 ,需要自己动手去网络上寻找到某个插件 ,手工完成它的安装 、更新以及卸载工作 。在多台电脑上同步 ,除了重复这个过程 ,就是选择互相复制的方式 ,效率极其低下 。
高效的vim plugin使用方式
解决这个问题最理想的方式是: 借鉴linux管理软件包的方式来管理vim的插件 ,只要知道插件的名字 ,通过运行一条命令就能自动进行安装 、升级或卸载工作 。更进一步的 ,应该能支持自己写给自己用的vim plugin,就像linux中第三方软件仓库一样 ,只要告诉系统这个插件的地址,就能使用相同的插件管理命令来管理 。这样做的好处显而易见的 ,提升了效率 ,另外个人认为vim用户的需求有时只是需要使用某个插件而已,并不需要关心这个插件应该放在plugin 、syntax还是ftplugin目录中 。
有解决方案还要有工具支持才行 ,这个工具就是 vim-addon-manager 。(看着眼熟?说明你是debian/ubuntu用户 ,因为debian上有个包就叫这个名字 ,但不是一回事) 。
vim-addon-manager 的目标很KISS ,就是管理vim plugin 的 。 通过它可以在线安装vim.org 网站上的任何一个插件 ,只要运行一条命令即可 ,它会自动从vim.org 网站下载插件,并解压安装。它对每个插件使用不同的目录 ,这样卸载时只要删除那个插件的目录即可 。这个插件不仅仅能支持vim.org上面已有的插件 ,还支持存放在其它地方的插件 ,不管是压缩包还是 SCM 形式 ,目前支持的SCM 包括git 、svn 、bzr等等 。存放在其它地方的vim 插件需要联系作者来注册它 ,使它成为官方直接支持的插件 。如果不做官方注册 ,你也可以像第三方源那样使用用,区别就是受众比较小 ,可能就你一个人用而已 。
安装 vim-addon-manager
vim-addon-manager 本身也是一个vim plugin, 所以首先要安装它 。
在文件中加入以下内容
使用 vim-addon-manager
现在 vim-addon-manager 已经安装好了, vim-addon-manager 管理vim plugin 使用这些命令:
InstallAddons {name} ... 从网络安装指定的插件 。 通常情况下 ,应该使用ActivateAddons 命令直接激活 。只有在需要了解插件包含的文件列表时才使用这个命令先安装 ,后激活 。 ActivateAddons {name} ... 激活指定的插件 。 如果插件没有安装 ,则先从网络下载安装 ,然后激活 。 ActivateInstalledAddons {name} ... 激活指定的插件 指定的插件已经被安装 ,但没有激活 。这个命令和ActivateAddons 命令的区别仅在于只补全已经安装的插件 。 UpdateAddons [{name} ...] 更新指定的插件到最新版本。 如果没有参数则更新所所有已安装插件 。 UninstallNotLoadedAddons {name} ... 卸载指定的插件 。测试 vim-addon-manager
安装
先安装一个最常用的插件taglist 和 a.vim
通过 InstallAddons 来安装taglist可以看到 taglist 包含的文件。 这两个文件都被安装到了前面设置的目录中了:
/home/yetist/.vim/ |-- addons | |-- a.vim_-_Alternate_Files_quickly_.c | |-- taglist | |-- vim-addon-manager | `-- vim-addon-manager-known-repositories `-- vimrc更新:
更新taglist 到最新版本
Note
vim-addon-manager 和 vim-addon-manager-known-repositories 这两个插件也可以使用 UpdateAddons 命令来更新 ,更新时会自动调用 git pull 命令 。
测试
测试一下taglist 插件
卸载
卸载taglist 插件
卸载之后taglist 插件被从addons 目录中删除了:
/home/yetist/.vim/ |-- addons | |-- a.vim_-_Alternate_Files_quickly_.c | |-- vim-addon-manager | `-- vim-addon-manager-known-repositories `-- vimrcNote
使用 ActivateAddons 命令激活的插件在下一次启动 vim 时 ,并不会自动激活 ,要想让每次使用vim 时都自动激活 ,需要修改 ~/.vimrc文件 ,把它加入到 call vam#ActivateAddons() 的参数列表中 。
使用 vim-addon-manager 自定义源
凡是在 vim-addon-manager-known-repositories 中注册过的vim plugin 都可以直接使用 ,但是在一些情况下可能你需要使用没有被注册的 vim 插件,比如自己写的差不多只给自己用的插件 ,或者想一直使用某个插件的开发版本 。
这种情况就属于使用 vim-addon-manager 的自定义源了 ,如果插件的开发版本支持 vim-addon-manager , 那么你只需要在 ~/.vimrc 文件中设置一个变量就行了 。 比如 vimim 现在已经支持 vim-addon-manager 了,你需要做的就是加入下面这行内容在你的 ~/.vimrc 文件中:
同时把"vimim" 加入到 call vam#ActivateAddons() 的参数列表中即可 。
现在请把你之前的 vim 插件都整理一下吧 ,使用 vim-addon-manager 来管理 。
记得开始我们说过多台电脑间的同步问题 ,现在看来 ,同步就很简单了 ,因为只要同步一个 ~/.vimrc 文件就够了 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!