Oh My Zsh 安装与配置:主题、插件和补全加载顺序
zsh 是 Shell,Oh My Zsh 是管理 zsh 配置的框架,插件提供额外功能。brew install zsh 只安装 Shell,不会同时安装 Oh My Zsh。下面的插件按需选择,同一个插件不要同时通过 Homebrew 和 Git 加载两遍。
先检查已有环境:
sh
zsh --version
command -v zshmacOS 通常已有 /bin/zsh;如需 Homebrew 版本,可运行 brew install zsh。Debian/Ubuntu 可安装:
sh
sudo apt update
sudo apt install zsh先用 zsh 打开一个会话体验。需要更改当前用户的默认 Shell 时,核对 command -v zsh 返回的完整路径已列在 /etc/shells,再执行 chsh -s /实际/zsh/路径,重新登录生效。不要用 sudo chsh 意外修改 root 的登录 Shell。
安装 Git 与下载工具
已有这些工具时无需重复安装:
sh
brew install git curlsh
sudo apt install git curlOh My Zsh 安装与主题配置
安装框架
先备份现有 ~/.zshrc;已经安装 Oh My Zsh 的用户可以直接进入配置步骤。以下将官方脚本保存到当前目录,检查后再执行:
sh
if [ -f "$HOME/.zshrc" ]; then
cp "$HOME/.zshrc" "$HOME/.zshrc.backup.$(date +%Y%m%d%H%M%S)"
fi
curl -fL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -o omz-install.sh
less omz-install.sh确认下载完整并了解脚本会修改哪些配置后执行:
sh
sh omz-install.sh按提示处理默认 Shell 与已有配置。新开 zsh 终端后检查 ~/.oh-my-zsh 和 ~/.zshrc,不要覆盖备份中的自定义环境变量。Oh My Zsh 官方安装说明
配置主题
在编辑器中打开 ~/.zshrc,修改已有的 ZSH_THEME,例如:
zsh
ZSH_THEME="awesomepanda"配置应位于 source "$ZSH/oh-my-zsh.sh" 之前;保留模板中的这条加载语句一次即可。保存后新开终端检查主题,不把配置内容逐行当作安装命令执行。
随机主题
如需每次启动时随机选择主题,将上面的值改为:
zsh
ZSH_THEME="random"插件安装与加载
plugins=(...) 是 ~/.zshrc 中的一个数组,应在同一处合并已有插件,而不是为每个插件新增一个数组覆盖前面的设置。先安装插件文件,再启用插件名称。
autojump
sh
brew install autojumpsh
sudo apt install autojump使用 Oh My Zsh 时,把内置的 autojump 插件加到已有数组中,例如 plugins=(git autojump),并保留后面的 Oh My Zsh 加载语句。新开终端,用 command -v autojump 和 type j 检查程序与跳转函数都可用;它需要先积累访问过的目录才能匹配。
若发行版安装路径没有被自动识别,按本机 /usr/share/doc/autojump/README.Debian 或 brew info autojump 给出的初始化路径配置。只克隆 autojump 仓库并不等于已经安装其程序。autojump 官方说明
zsh-autosuggestions
以下两种方式任选一种。
使用 Oh My Zsh 插件目录:
sh
git clone https://github.com/zsh-users/zsh-autosuggestions.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"然后在已有 plugins=(...) 中加入 zsh-autosuggestions。目标目录已经存在时不要重复克隆,应先检查已有安装。
使用 Homebrew:
sh
brew install zsh-autosuggestions将下面一行加在 ~/.zshrc 的 Oh My Zsh 加载语句之后;这种方式不再把插件名加入 plugins:
zsh
source "$(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh"新开终端,输入历史命令的前几个字符检查灰色建议是否出现。插件安装说明
zsh-syntax-highlighting
使用 Oh My Zsh 插件目录:
sh
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"将 zsh-syntax-highlighting 放在已有插件数组的最后。若还在 Oh My Zsh 之后手动加载其他会注册编辑控件的插件,则改用手动 source,让语法高亮最后加载,不要重复启用。
Homebrew 的替代方式是先运行 brew install zsh-syntax-highlighting,然后将以下配置放在 ~/.zshrc 末尾:
zsh
source "$(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"新开终端输入命令,检查有效命令和未知命令的显示差异;无需真的执行未知命令。加载顺序说明
zsh-completions
它扩充补全定义。按上游当前建议,不要把 zsh-completions 当作普通插件加入 plugins;将其路径加入 fpath,并放在补全初始化和 Oh My Zsh 加载之前。
Git 安装方式:
sh
git clone https://github.com/zsh-users/zsh-completions.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-completions"在 ~/.zshrc 中使用对应路径:
zsh
fpath=("${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-completions/src" $fpath)Homebrew 用户可改用 brew install zsh-completions,并只添加这一条路径:
zsh
fpath=("$(brew --prefix)/share/zsh-completions" $fpath)路径配置之后、原有 source "$ZSH/oh-my-zsh.sh" 之前,按上游方案初始化补全:
zsh
autoload -U compinit
compinit新开终端,对已安装程序按 Tab 检查补全。zsh-completions 安装说明
如果出现 insecure directories,先运行 autoload -Uz compaudit 和 compaudit 查看具体目录,再核对目录所有者与可写权限。只修正确认不应被组或其他用户写入的目录,不要盲目修改整棵 Homebrew 目录,也不要通过禁用检查掩盖问题。
进阶配置与排错
下列设置按需放在 Oh My Zsh 加载语句之前:
zsh
# 粘贴 URL 等文本时出现异常,再尝试关闭 magic functions
DISABLE_MAGIC_FUNCTIONS="true"
# 可选:启用命令拼写纠正
ENABLE_CORRECTION="true"
# 可选:补全等待时显示提示
COMPLETION_WAITING_DOTS="true"保存后先运行 zsh -n ~/.zshrc 检查语法,再打开新终端验证;语法通过不代表插件路径和功能都可用。若出现 plugin ... not found,检查插件实际目录与安装渠道;若补全异常,先检查 fpath 和加载顺序。保留原终端及备份,确认新会话正常后再关闭旧会话。