基本上,本文就是来分享一下今天探索一个小时的时间,我对自己的Terminal做的一些升级。其核心就是使用了OhMyZsh来定制里面的一些功能,让Terminal的体验更友好一些。

macOS 自带的 Zsh 虽然强大,但默认配置极其简陋,而 Oh My Zsh 不仅是一个框架,更是一个庞大的插件与主题生态。

自动补全

在使用终端时,我安装了 zsh-autosuggestions 插件,它会根据历史记录提供“灰色虚影”预测。

  • 安装命令
  git clone https://github.com/zsh-users/zsh-autosuggestions 
  
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  • 体验感:当你刚打出 gi,终端已经帮你补全了那串复杂的 git clone 命令。配合向右方向键 ,会提升效率。
  • 配置方式:编辑 ~/.zshrc,在 plugins=(...) 数组中添加 zsh-autosuggestions

使用 VS Code 替代 Nano

在 macOS 上,直接使用以下命令打开配置文件:

code ~/.zshrc

如果命令不可用,在 VS Code 中按下 Cmd + Shift + P,搜索并执行 Shell Command: Install 'code' command in PATH


换用 Ghostty 终端

我从传统的 Terminal.app 迁移到了 Ghostty。这是一个基于 GPU 加速、由 Zig 编写的现代终端。

  • 安装方法:使用 Homebrew 安装 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 状态、执行耗时和工具版本。

  • 安装与初始化: 安装命令为

brew install starship

~/.zshrc 末尾添加初始化脚本

eval "$(starship init zsh)"
  • 预设样式应用

    使用以下命令应用彩色色块预设:

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

用 Powerlevel10k 优化启动

虽然使用了 Starship 改变外观,但底层的 Zsh 主题依然保持 Powerlevel10k 以利用其性能特性。

  • Instant Prompt:在 ~/.zshrc 的最顶行加入
typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet

可消除初始化时的冗余输出警告。

  • 环境路径管理:通过
export PATH="$HOME/.local/bin:$PATH"

确保所有 CLI 工具路径正确。


高亮语法

最后一项配置是 zsh-syntax-highlighting。它可以实时检测你输入的命令。

  • 安装命令
  git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  • 配置方式:在 ~/.zshrcplugins 列表中加入 zsh-syntax-highlighting

  • 功能

    • 绿色:命令合法。
    • 红色:命令拼错,提示及时修正。

    我的zshrc

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

# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

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