本博客前文已经实现了vim, neovim
等编辑器中插件的自动更新,原理是github克隆仓库有三个链接HTTPS,
GitHub CLI,
SSH,其中HTTPS对应网址https://github.com,对于所有人开放,但是当前网络它是不稳定的。而SSH只对于那些登录GitHub的用户开放,于是在本机配置了SSH的用户,相当于完成了认证,只需要使用git@github.com
就可以顺利完成插件的下载和更新了。
vim-plug的更新
插件vim-plug提供了更新插件的命令PlugUpdate,
由于插件是追加了git@github.com的,所以各插件可以正常更新。但是自更新命令PlugUpgrade
通过脚本plug.vim可以看出是通过https://github.com来更新的,这是为了让没有GitHub帐号的用户也能使用插件并更新,但是当前网络环境下自动更新却成了一个难题。仔细研究后,我提出了一个思路:
建立目录~/.vim/autoload 和
~/.vim/plugged,
第一个目录是按通常方法安装vim-plug时创建,第二个目录是vim-plug在安装插件时创建。
直接使用git克隆vim-plug目录到~/.vim/plugged/vim-plug。
建立链接~/.vim/plugged/vim-plug/plug.vim
到~/.vim/autoload/plug.vim。
在.vimrc
文件中配置好vim-plug插件。
这么操作的原理是: 当执行命令 PlugInstall
后,所有的插件将会被安装到目录 ~/.vim/plugged/, 于是
.vimrc 配置了 vim-plug,则此插件也必会安装到
~/.vim/plugged/vim-plug/。 但是经测试 vim
启动时最先加载的插件是 ~/.vim/autoload/plug.vim,
现在是超链接,所以也就是加载了
~/.vim/plugged/vim-plug/plug.vim, 反过来当执行
PlugUpdate 时,所有的插件都会从 git@github.com
更新,于是 vim-plug 也就得到了更新。但是注意,不要执行
PlugUpgrade, 因为若网络偶尔可以使用
https://github.com 时,它自动更新成功了,将会下载最新的
plug.vim 到 ~/.vim/autoload/plug.vim,
从而取代了原来的链接,下一次将不能再平稳的从 git@github.com
更新。