记录一下我的 zsh 配置

Zsh 配置

记录一下我的 zsh 配置

28 April 2026

3 min read

背景

最近想写点东西记录一下自己折腾这些工具的经历,之前一直没想到具体写什么。今年实验室服务器迁移,刚好需要重新配一遍 zsh,干脆顺手把整套方案写下来,省得下次换机器再翻一堆旧博客。

什么是 Zsh

Zsh 也是一种 shell,可以看成是一个更好用的 Bash——完全兼容 Bash 的语法,但补全、插件、主题方面强了不止一个量级。目前 macOS 的默认 shell 已经是 Zsh 了。配上插件之后,用起来在 Linux 下能省一大堆敲键盘的功夫。

Zsh 通过大部分主流 Linux 发行版的包管理器都能直接装。要是在没 sudo 权限的服务器上,也可以用 conda 装一份用户级别的,绕开权限问题。

oh-my-zsh

Zsh 固然好用,但初始时只有白板没有任何插件,离理想的使用体验还差点意思,这里就轮到 oh-my-zsh 登场了。

oh-my-zsh 是社区为 zsh 收集的一个第三方插件和主题合集,国内可以通过南京大学镜像站快速安装:

Bash
git clone https://mirror.nju.edu.cn/git/ohmyzsh.git
cd ohmyzsh/tools
REMOTE=https://mirror.nju.edu.cn/git/ohmyzsh.git sh install.sh

通过这三条指令可以在境内快速装好 oh-my-zsh,安装过程中也会问你要不要把 zsh 设为默认 shell。要是当时手抖没设置,事后用 chsh -s $(which zsh) 也能补救。

Powerlevel10k

oh-my-zsh 自带的主题我感觉还是不够美观、不够能折腾,于是这里再引入一个 Powerlevel10k 主题。在众多主题中,Powerlevel10k 因为美观和高度可定制脱颖而出,截至 2026 年 4 月 28 日,它在 GitHub 上已累计收获 54k 个 star。

国内安装可以用 gitee 的镜像:

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

之后修改 ~/.zshrc,把 ZSH_THEME 改成 powerlevel10k/powerlevel10k

Bash
ZSH_THEME="powerlevel10k/powerlevel10k"

source ~/.zshrc 或者重启终端后,会自动进入 Powerlevel10k 的配置向导,跟着选自己喜欢的风格就行。后面想再调,随时 p10k configure 就能重来一遍。

为了能完整显示主题里的图标,建议装一款 Nerd Font 字体。我个人用的是 0xProto Nerd Font,大家也可以挑别人推荐的字体,比如 FiraCode、JetBrainsMono、MesloLGS 之类的都行。装完之后记得在终端模拟器(iTerm2 / Windows Terminal / Alacritty / Kitty 等)的设置里把字体切换过去。

插件设置

主题搞定了,下一步就是装上几个真正能帮我们提高生产力的插件。

zsh-autosuggestions

非常有用的一个插件,根据历史记录和补全信息在你输入时实时给出灰色提示,按 就能接受补全,能省下不少重复敲键盘的功夫。

安装指令:

Bash
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

zsh-syntax-highlighting

提供指令和文件路径的高亮显示,方便你在按下回车之前就检查指令和路径有没有写错,相当于给终端加了层"实时校对"。

安装指令:

Bash
git clone https://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

小坑提醒:zsh-syntax-highlighting 必须放在 plugins=(...) 列表的 最后一项,否则可能会和其他插件打架。

git

oh-my-zsh 自带的插件,把大量常用 git 指令简化成了别名,具体怎么用可以参考 $ZSH/plugins/git/git.plugin.zsh 这个文件。

git

如图所示,alias 表示别名,等号左边是缩写指令,右边是原指令,比如用 gst 就能代替 git status,用 gco 代替 git checkout

启用插件

最后别忘了在 ~/.zshrc 里把上面三个插件加到 plugins 列表里,然后 source ~/.zshrc 让配置生效:

Bash
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

Kitty

kitty 是一个基于 OpenGL 的可编程终端模拟器,适用于 Linux 与 macOS,具有真彩色,连字支持,键盘输入和图像渲染的协议扩展。它还提供了类似于 GNU Screen 或 tmux 的平铺功能。

kitty 在 ~/.config/kitty/kitty.conf 中存储配置,可以调整字体,颜色,光标,透明度和回滚行为。

kitty

我的项目结构如图所示,接下来会放出我的配置文件:

kitty.conf

CONF
include themes/matugen.conf
window_padding_width 5
hide_window_decorations no
background_opacity 0.8
font_family JetBrains Maple Mono 
font_size 13.5
remember_window_size no
confirm_os_window_close 0
shell /bin/zsh --login
cursor_trail 1 
cursor_shape block
shell_integration no-cursor
# BEGIN_KITTY_THEME
# Matugen
include current-theme.conf
# END_KITTY_THEME

current-theme.conf

CONF
cursor #e0e2e8
cursor_text_color #c2c7ce

foreground            #e0e2e8
background            #101418
selection_foreground  #23323f
selection_background  #b8c8da
url_color             #99ccfa

# black
color8   #8c9198
color0   #4c4c4c

# red
color1   #ac8a8c
color9   #c49ea0

# green
color2   #8aac8b
color10  #9ec49f

# yellow
color3   #aca98a
color11  #c4c19e

# blue
/* color4  #8f8aac */
color4  #99ccfa
color12 #a39ec4

# magenta
color5   #ac8aac
color13  #c49ec4

# cyan
color6   #8aacab
color14  #9ec3c4

# white
color15   #e7e7e7
color7  #f0f0f0

themes/matugen.conf

CONF
cursor #e0e2e8
cursor_text_color #c2c7ce

foreground            #e0e2e8
background            #101418
selection_foreground  #23323f
selection_background  #b8c8da
url_color             #99ccfa

# black
color8   #8c9198
color0   #4c4c4c

# red
color1   #ac8a8c
color9   #c49ea0

# green
color2   #8aac8b
color10  #9ec49f

# yellow
color3   #aca98a
color11  #c4c19e

# blue
/* color4  #8f8aac */
color4  #99ccfa
color12 #a39ec4

# magenta
color5   #ac8aac
color13  #c49ec4

# cyan
color6   #8aacab
color14  #9ec3c4

# white
color15   #e7e7e7
color7  #f0f0f0

一些软件

nvm

非常好用的 node.js 版本管理器,无需 sudo 权限,能解决系统级 node 下 npm install -g 安装时各种权限问题。

参考 https://github.com/nvm-sh/nvm 安装。

conda

无需多言。

fastfetch

获取本机发行版和硬件信息,比较酷炫,装逼使用。

可以进行美化,参考指令:

Bash
cd $HOME/.config

# 下载并解压然后删除
wget https://github.com/sqlsec/fastfetch/releases/download/v0.1/fastfetch-for-Linux.zip
unzip fastfetch-for-Linux.zip && rm fastfetch-for-Linux.zip

效果如图: fastfetch

onefetch

获取当前 git 项目信息,使用时需保证当前目录已经 git 初始化(即包含 .git 目录)。

效果如图: onefetch