macOS 安装 Powerlevel10k

Powerlevel10k 是一个 Zsh 主题,特点是速度快、可定制程度高,并且自带交互式配置向导。

准备

确认当前 shell 是 Zsh:

echo $SHELL

如果输出不是 /bin/zsh,可以切换为 Zsh:

chsh -s /bin/zsh

安装推荐字体

Powerlevel10k 推荐使用 MesloLGS NF 字体,否则图标可能显示为乱码或方块。

使用 Homebrew 安装:

brew install --cask font-meslo-lg-nerd-font

安装完成后,在终端应用里把字体切换为 MesloLGS NF

常见终端字体设置位置:

  • Terminal.app:设置 -> 描述文件 -> 文本 -> 字体
  • iTerm2:Settings -> Profiles -> Text -> Font
  • VS Code:设置 terminal.integrated.fontFamilyMesloLGS NF

方式一:使用 Homebrew 安装

brew install powerlevel10k

安装完成后,把主题加载语句写入 ~/.zshrc

echo 'source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc

重新加载配置:

source ~/.zshrc

首次加载会自动进入配置向导。如果没有自动出现,可以手动执行:

p10k configure

方式二:配合 Oh My Zsh 安装

如果已经在使用 Oh My Zsh,可以把 Powerlevel10k 克隆到自定义主题目录:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

编辑 ~/.zshrc

ZSH_THEME="powerlevel10k/powerlevel10k"

重新加载配置:

source ~/.zshrc

然后运行配置向导:

p10k configure

配置文件

配置完成后,Powerlevel10k 会生成 ~/.p10k.zsh

~/.zshrc 通常会自动追加下面这段加载逻辑:

[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

以后想重新选择样式,直接执行:

p10k configure

卸载

卸载前建议先备份 ~/.zshrc

cp ~/.zshrc ~/.zshrc.backup

如果是通过 Homebrew 安装,先删除 ~/.zshrc 里的主题加载语句:

source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme

然后卸载 Powerlevel10k:

brew uninstall powerlevel10k

如果是配合 Oh My Zsh 安装,把 ~/.zshrc 里的主题改回默认主题或其他主题:

ZSH_THEME="robbyrussell"

然后删除 Powerlevel10k 主题目录:

rm -rf ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

如果不再需要 Powerlevel10k 的个人配置,可以删除配置文件,并清理 ~/.zshrc 中加载它的语句:

rm ~/.p10k.zsh

需要的话,也可以卸载推荐字体:

brew uninstall --cask font-meslo-lg-nerd-font

最后重新加载 Zsh 配置:

source ~/.zshrc

常见问题

图标显示乱码

通常是字体没有设置正确。确认已经安装 MesloLGS NF,并且当前终端 profile 使用的字体也是 MesloLGS NF

配置向导没有自动出现

手动运行:

p10k configure

修改 .zshrc 后没有生效

重新加载配置:

source ~/.zshrc

或者关闭终端窗口后重新打开。

想更新 Powerlevel10k

Homebrew 安装方式:

brew update
brew upgrade powerlevel10k

Oh My Zsh 手动克隆方式:

git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull