Vim的包管理有很多选择,有Vundle、NeoBundle、Vim-plugin、Pathogen、Dein、VAM等,像我之前一直使用的是Vundle。这段时间把Vim升级到了Vim 8+,发现了Vim 8已经有内置的包管理功能,于是体验了一把,如下就是使用方法。
一、package概念
不同于Vundle或者vim-plugin中的plugin, vim 8内置包管理器引入了一个新的package的概念来组织管理包。一个package是若干plugin的集合,一个package里的plugin之间可以是互相依赖的。package中有两个目录:启动时加载目录、启动后加载目录,你可以将希望vim启动时自动加载的plugin放置到启动时加载目录中,启动后加载plugin放置到启动后加载目录。
二、如何使用
首先毫无疑问,你的vim版本要升级到8.0以上~
- 
    创建放置所有 package的根目录mkdir -p ~/.vim/pack
- 
    创建一个新的 package,用于存放vim插件mkdir -p ~/.vim/pack/mypackage
- 
    分别在 mypackage中创建目录start和optmkdir -p ~/.vim/pack/mypackage/start mkdir -p ~/.vim/pack/mypackage/opt
- 
    将想vim启动时自动加载的插件丢到 ~/.vim/pack/mypackage/start,而不想启动时加载的插件丢到~/.vim/pack/mypackage/opt中,需要用到的时候,执行:packadd $pluginname就可以了
- 
    重启vim, ~/.vim/pack/mypackage/start中插件即可自动加载了
三、插件管理
如何方便地添加、升级、同步vim插件呢?我们用到的vim插件很多都是在github上以repostory形式存在的,可以配合使用git的submodule功能,来从github上添加、更新第三方vim插件。
- 
    把 ~/.vim做成一个git仓库,然后初始化submodulecd ~/.vim git init git submodule init
- 
    添加第三方插件,比如ale cd ~/.vim git submoudle add git@github.com:dense-analysis/ale.git pack/mypackage/start/ale
- 
    升级所有第三方插件 git submodule update --recursive --remote
- 
    同步vim插件到另一台机器,只需要在另一台机器上把vim插件仓库clone下来到 .vim目录即可cd ~/.vim git clone --recursive git@github.com:{your_github_name}/{your_repostoy_name}.git