date
related_level
slug
type
relate_date
summary
status
tags
category
last_updated
Nov 10, 2025 10:03 PM
是否已更新
orginal_page
是否推荐
安装 zsh
安装并设置 oh-my-zsh 主题
安装 oh-my-zsh
oh-my-zsh 一键安装脚本
- 国内源
sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"
- 国外源
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
手动安装
下载安装脚本并更改为国内源
wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh
vim install.sh
添加运行权限并运行
chmod u+x ./install.sh
./install.sh
设置主题为 agnoster
(可选)设置主题为 powerlevel10k
需要设置推荐字体以支持 powerlevel10k 主题正常显示
- macos 下只需终端执行以下指令安装所需字体
hack-nerd-font brew install font-hack-nerd-font
解决 oh-my-zsh 主题字体显示乱码问题
- 清楚一点:字体乱码是显示终端的问题,与服务器无关,以下操作都是在客户端进行
测试用特殊字符
安装所需字体包
- Windows系统
配置终端显示字体
- 字体改成 DejaVu Sans Mono for Powerline
- powerlevel10k 主题用 MesloLGS NF
VScode
- File → Preference → Settings
- 修改 terminal.integrated.fontFamily
Putty客户端
- Window → Appearance
- 修改 Font Settings
Microsoft Terminal
Ctrl+,打开设置标签页
- 配置文件 → 默认值 → 外观 → 文本 → 字体
手动更新 oh-my-zsh
omz update
Zsh 插件
常用插件
语法高亮 zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
命令自动建议 zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
命令行补完 compleat
参考资料
安装 Haskell Stack
curl -sSL https://get.haskellstack.org/ | sh- 要安装到根目录需要
sudo sh
添加国内源至系统全局配置文件 /etc/stack/config.yaml
- 没有的话需要创建对应路径及文件
sudo mkdir /etc/stack && sudo touch /etc/stack/config.yaml
- 或者添加至用户级全局配置文件
~/.stack/config.yaml
添加 ~/.local/bin 至 PATH 变量(如无)
- bash
vim ~/.bash_profile
- zsh
vim ~/.zprofile
- 添加以下行
PATH=$PATH:$HOME/.local/bin:$HOME/bin
下载并安装 compleat
git clone https://github.com/mbrubeck/compleat.git
make install- 得到
~/.local/bin/compleat二进制文件和~/.bash_completion.d/compleat_setup脚本
修改终端 shell 配置以使用 compleat
bash
- 添加脚本至
.bashrc文件 source ~/.bash_completion.d/compleat_setup
zsh
sudoedit /etc/zsh/zshrc- 修改 compinit 部分
安装 .usage 文件
- 全局安装
/etc/compleat.d sudo mkdir /etc/compleat.d && sudo cp examples/* /etc/compleat.d
- 本地安装
~/.compleat mkdir ~/.compleat && cp examples/* ~/.compleat
重启终端 shell
exec bash
exec zsh
基于 zinit 的终端工具包管理
参考资料
- https://github.com/zdharma-continuum/zinit
- 原本的项目炸过一次, 这是新的
- https://zdharma-continuum.github.io/zinit/wiki/INTRODUCTION/
- 文档很久没更新, 建议以 github readme 为准
- 很多终端插件或工具都可以从 github 下载并安装, zinit 就是为了管理这些工具而设计的
- 相比 zsh 自带的插件管理而言, zinit 具有 lazyload 功能从而加速启动
- 除了 zsh 插件之外, 通过自行编写加载的修饰符可以适配绝大部分 github 库
- 默认从 github clone 获取对应库代码, 也可以通过 release 获取安装包
- 格式为
<username>/<repo>
修饰符 ice 和 zinit load, zinit light
zinit ice后面跟的一些关键词会使用到最近的zinit load
- 延迟 0.1 秒加载 fzf 作为插件
zinit wait"0.1" from"gh-r" as"program"zinit load @junegunn/fzf
- 与
load同样加载插件,light会跳过插件元数据解析 - 正常使用
load时,Zinit 会查找插件中的.plugin.zsh、init.zsh等标准入口文件,并处理其依赖、别名等
进阶修饰符 zinit for
- 相比于 ice 只能适用于最近一次 load, for 可以对一连串的项目使用相同的关键字
- 其余除了部分关键字不通用外都相同
- for 只能用 light-mode 关键字, 没有 light 指令
一些常用关键字
wait""
- 延迟 x 秒加载
lucid- 静默加载,不显示 Loaded... 提示
light-mode- 相当于 light 指令, 但用于修饰 for 指令
as""
as"program"- 加载路径到 PATH 而非 source
as"completion"- 作为补全加载, 一般适用于 snippet
as"null",as""- 相当于
pick"/dev/null" nocompletions - 禁用 source 且不加载补全
id-as""
- 创建别名, 一般与 snippet 一起使用
- 对于文件名不规范的补全文件特别有效
depth""
- 设置 git 的
--depth选项
from""
from"gh"从 github release 直接下载, 不用 clone 整个项目
""可以是完整的域名
- 对 snippet 无效
bpick""
- 选择从 github release 下载的文件, 适用于 release 有多个文件且文件不规范导致自动解析出错下载了
- 选择文件名含
Darwin的 release 文件 from"gh-r" bpick"*Darwin*"
pick""
- 选择要 source 的脚本文件, 可以写 pattern 匹配多个文件
pick"*.plugin.zsh"
- 路径是相对于插件文件夹内的路径
mv"", cp""
- 同 mv, cp 指令, 但在插件初始化之后执行, 一般用于提取安装包的文件到合适路径
- 也可以用于重命名
atinit"", atclone"", atpull"", atload""
- 在对应期间执行一些操作
- 如
atload加载别名, 这样可以不用分开管理 alias
src""
- 选择额外的 source 文件, 会在 pick 之后运行
关键字执行顺序
atinit->atpull!->make'!!'->mv->cp->make!->atclone/atpull->make->(plugin script loading)->src->multisrc->atload
一些基础插件
zsh 插件
- 主要包含 completions, highlight, history-search 和 fzf
zinit 插件
zinit depth"1" for \ zdharma-continuum/zinit-annex-as-monitor \ zdharma-continuum/zinit-annex-bin-gem-node \ zdharma-continuum/zinit-annex-patch-dl \ zdharma-continuum/zinit-annex-rust
- 安装 zinit-annex-bin-gem-node 可使用 sbin 修饰符
- 默认的 as”program” 会添加路径到 PATH 变量, 太长不美观
管理 zinit 安装
zinit zstatus- 查看状态
zinit plugins- 查看插件列表
zinit completions- 查看补全列表
zinit snippets- 查看代码片段列表
zinit delete删除已有插件或 snippet
zinit cuninstall删除已有补全
zinit cclear清理补全列表- 适用于添加错误且已删除的补全
zinit cdclear清理按需加载补全(compdef)重放列表
zinit compinit刷新补全
基于 zinit 的个人 zsh 配置
- 插件和补全加载部分放到
~/.config/zsh/*.zshrc文件, 不同节点根据需要加载不同配置
vim ~/.zshrc
vim ~/.config/zsh/00.plugins.zinit.zshrc
- 主要会用到 sbin 修饰符
vim ~/.config/zsh/01.core.zshrc
- 核心插件和 fzf
vim ~/.config/zsh/02.plugins.omz.zshrc
- omz 插件
- Author:白鸟3
- URL:https://blog.kun2peng.top/operation/shell_zsh_zinit
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
