换用 zplug
最近要搬几个服务器,想把迁移服务器时配置环境的这些步骤搞简单一点。自从用上了 zsh 和各种插件后,不装这玩意就浑身难受,但配置 zsh 的各种插件又相当费事。之前了解过 zplug 这玩意,今天就研究一下怎么切上去。
参考文章:zsh + zplug 快速部屬你的 Shell 工作環境 | jkgtw’s blog
之前配置 zsh,参考 桌面版 ubuntu & debian 踩坑 | Bao’s 备忘录,大概步骤是:
- 安装 zsh
- 切换默认终端为 zsh
- 安装 oh-my-zsh
- 安装 p10k
- 配置 oh-my-zsh 和安装相应插件(这一步要 git clone 各种插件,挺麻烦的)
- 配置 p10k
- 一些 bug 的解决(比如字体不能显示,小键盘不能用等等)
- 导入历史记录
使用 zplug 可以精简掉其中的 3-6 步,之后只要装好 zplug 后,把 .zshrc
和 .p10k.zsh
考过来,用 source 或者重启一下就能自动搞定了。
具体的说:
安装 zplug
1
curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh
修改原有的
.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 了,我们得声明一段代码,启用历史记录功能,并且用
his
或history 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
文件夹下):repos/ 里的 junegunn 文件夹
bin/ 里的多余 fzf bin 文件
删除 packages.zsh 的依赖(参考 如何删除插件? · 问题 #108 · zplug/zplug)
安装完毕,运行
fzf
命令,正常运行即安装成功。(安装完毕可能会弹出__zplug::log::format::with_json:printf:16: % T: invalid directive
,无视即可。)如果遇到安装报错或者更新报错(
zplug update
)的问题,可以安装 gawk 试试(参考zplug update: Unknown error if the repo is already updated · Issue #359 · zplug/zplug — zplug 更新:如果存储库已更新,则出现未知错误 ·问题 #359 ·zplug/zplug):1
sudo apt install gawk -y
注意 acme.sh
acme.sh 安装时会写入变量到 .zshrc 中。如果有 zplug,会写下如下两条命令:
1 | zplug load. "/root/.acme.sh/acme.sh.env" |
但这么写每次打开的时候都会报警。需要手动改成
1 | zplug load |
参考文章
最后推荐两篇文章,可以参考里面的内容,添加更多有趣的插件(不过加载时间也会因此变慢,自己抉择)