English

Oh My Zsh:定制终端

今天花了一个小时给自己的终端做了些升级。macOS 自带 Zsh,但默认配置很简陋,所以我用 Oh My Zsh 和其它几个工具让它更好用一些。以下是我做的改动。

自动补全

zsh-autosuggestions 插件会在你输入时,根据历史记录给出灰色的建议。刚打出 gi,它就已经补全了之前那串很长的 git clone 命令,按 → 即可采用。

sh
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

然后在 ~/.zshrc 的 plugins=(...) 里加入 zsh-autosuggestions。

用 VS Code 编辑 .zshrc

我用 VS Code 代替 Nano 打开配置文件:

sh
code ~/.zshrc

如果找不到 code 命令,在 VS Code 中按 Cmd + Shift + P,执行 Shell Command: Install 'code' command in PATH。

Ghostty

我从系统自带的 Terminal.app 换到了 Ghostty,一个用 Zig 编写、GPU 加速的终端。

sh
brew install --cask ghostty

配置文件位于 ~/.config/ghostty/config。我的配置:

font-family = "JetBrains Mono"
font-size = 14
theme = "Catppuccin Mocha"
background-opacity = 0.85
background-blur-radius = 20
cursor-style = bar
cursor-style-blink = true
window-decoration = true

Starship

Starship 是一个提示符工具,能显示 Git 状态、上一条命令的耗时和工具版本。

sh
brew install starship

在 ~/.zshrc 末尾加入:

sh
eval "$(starship init zsh)"

我用的是彩色色块预设:

sh
starship preset pastel-powerline -o ~/.config/starship.toml

语法高亮

zsh-syntax-highlighting 会在你输入时给命令上色:命令存在显示绿色,不存在显示红色,按回车前就能发现拼写错误。

sh
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

在 ~/.zshrc 的 plugins 里加入 zsh-syntax-highlighting,并且把它放在列表的最后。

我的 .zshrc

说明一下:这份配置里还留着我换用 Starship 之前的主题 Powerlevel10k。因为 starship init 在最后执行,Starship 的提示符会覆盖掉 p10k 的,所以 p10k 相关的几行(instant prompt 那一段、ZSH_THEME 和 ~/.p10k.zsh)其实是可以删掉的遗留配置。语法高亮插件也还没有加进 plugins。

sh
typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet

if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

export ZSH="$HOME/.oh-my-zsh"

ZSH_THEME="powerlevel10k/powerlevel10k"

plugins=(git zsh-autosuggestions)

source $ZSH/oh-my-zsh.sh

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

export PATH="$HOME/.local/bin:$PATH"
eval "$(starship init zsh)"

于潮汐之下