vim-plug和oh-my-zsh的更新

本博客前文已经实现了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帐号的用户也能使用插件并更新,但是当前网络环境下自动更新却成了一个难题。仔细研究后,我提出了一个思路:

  1. 建立目录~/.vim/autoload~/.vim/plugged, 第一个目录是按通常方法安装vim-plug时创建,第二个目录是vim-plug在安装插件时创建。

  2. 直接使用git克隆vim-plug目录到~/.vim/plugged/vim-plug

  3. 建立链接~/.vim/plugged/vim-plug/plug.vim~/.vim/autoload/plug.vim

  4. .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 更新。

oh-my-zsh的更新

还是由于https://github.com不稳定的原因,安装oh-my-zsh需要执行命令

install oh-my-zsh
1
git clone --depth 1 git@github.com:ohmyzsh/ohmyzsh.git ~/.oh-my-zsh

当启动终端的时候,oh-my-zsh会启动自动更新,此时请不要确认更新。切换到目录~/.oh-my-zsh/, 然后执行命令git pull , 拉取最新就可以了。