本博客前文已经实现了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
更新。