换用 zplug

最近要搬几个服务器,想把迁移服务器时配置环境的这些步骤搞简单一点。自从用上了 zsh 和各种插件后,不装这玩意就浑身难受,但配置 zsh 的各种插件又相当费事。之前了解过 zplug 这玩意,今天就研究一下怎么切上去。

参考文章:zsh + zplug 快速部屬你的 Shell 工作環境 | jkgtw’s blog 

之前配置 zsh,参考 桌面版 ubuntu & debian 踩坑 | Bao’s 备忘录,大概步骤是:

  1. 安装 zsh
  2. 切换默认终端为 zsh
  3. 安装 oh-my-zsh
  4. 安装 p10k
  5. 配置 oh-my-zsh 和安装相应插件(这一步要 git clone 各种插件,挺麻烦的)
  6. 配置 p10k
  7. 一些 bug 的解决(比如字体不能显示,小键盘不能用等等)
  8. 导入历史记录

使用 zplug 可以精简掉其中的 3-6 步,之后只要装好 zplug 后,把 .zshrc.p10k.zsh 考过来,用 source 或者重启一下就能自动搞定了。

具体的说:

  1. 安装 zplug

    1
    curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh
  2. 修改原有的 .zshrc 文件

    在 zshrc 最上面加上一行 source 启用 zplug

    1
    source ~/.zplug/init.zsh

    在 zshrc 最下面加上以下代码,作用是每次重载 zsh 检查 .zshrc 相关代码中是否有新的插件需要安装。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # Install plugins if there are plugins that have not been installed
    if ! zplug check --verbose; then
    printf "Install? [y/N]: "
    if read -q; then
    echo; zplug install
    fi
    fi

    # Then, source plugins and add commands to $PATH
    zplug load

    剩下的这几行代码,写在中间。

    插件声明语句,就是上面说的相关代码,格式类似这样:

    1
    zplug "romkatv/powerlevel10k", as:theme, depth:1

    双引号中的内容就是 git clone 那些插件时的插件的作者和库名,都在 url 的后半段里面。像我之前装的那些插件,大概就需要写这几行:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #zplug "romkatv/powerlevel10k", as:theme, depth:1
    zplug romkatv/powerlevel10k, as:theme, depth:1
    zplug 'zplug/zplug', hook-build:'zplug --self-manage'
    zplug "zsh-users/zsh-syntax-highlighting"
    zplug "zsh-users/zsh-completions"
    zplug "lib/completion", from:oh-my-zsh
    zplug "zsh-users/zsh-history-substring-search"
    zplug "zsh-users/zsh-autosuggestions"
    zplug "wting/autojump"
    zplug "junegunn/fzf", from:github, as:command, rename-to:fzf, hook-build:"./install --all"

    (21.8.29 更新) 原来的 zplug "romkatv/powerlevel10k", as:theme, depth:1 这行容易在 zsh 启动时报警告,大概是:

    1
    Change the way Powerlevel10k is loaded from ~/.zshrc

    根据提示查了查文档,换成了没有双引的这个命令。

    由于不需要单独安装 oh-my-zsh 了,相关代码注释掉

    1
    2
    3
    #export ZSH="/root/.oh-my-zsh"

    #source $ZSH/oh-my-zsh.sh

    同样,因为没有 oh-my-zsh 了,我们得声明一段代码,启用历史记录功能,并且用 hishistory 1 查询全部历史记录::

    1
    2
    3
    4
    # History config
    HISTSIZE=10000
    SAVEHIST=10000
    HISTFILE=~/.zsh_history

    最后重载 zsh 即可。

    1
    source ~/.zshrc

    (23.7.22 更新) fzf 参考 Fail install fzf-bin from gh-r with aliased grep · Issue #412 · zplug/zplug。如果已经不慎使用了错误的配置安装,可以通过删除相关文件来卸载(都在 .zplug 文件夹下):

acme.sh 安装时会写入变量到 .zshrc 中。如果有 zplug,会写下如下两条命令:

1
2
zplug load. "/root/.acme.sh/acme.sh.env"
. "/root/.acme.sh/acme.sh.env"

但这么写每次打开的时候都会报警。需要手动改成

1
2
zplug load
. "/root/.acme.sh/acme.sh.env"

参考文章

最后推荐两篇文章,可以参考里面的内容,添加更多有趣的插件(不过加载时间也会因此变慢,自己抉择)