Skip to content

终端环境

搭配 Homebrew、Oh My Zsh / Starship 和现代编程字体,通过 cmux、Ghostty、Zellij 等终端复用器构建 macOS 开发环境。

终端复用器

cmux ⭐

官网: https://cmux.com/

基于 libghostty 构建的 macOS 原生终端,专为并行运行多个 AI 编程代理(Claude Code、Codex、OpenCode 等)而设计。通过垂直标签页和通知系统,解决多终端窗口难以管理、代理完成后无法及时感知的问题。

优点:

  • 垂直标签页,侧边栏直接显示 Git 分支、PR 状态、工作目录、监听端口和最新通知
  • 通知环:代理需要输入时窗格亮起蓝环、标签页高亮,并触发 macOS 桌面通知
  • 内置可脚本化浏览器,可在终端旁分屏打开,让代理直接操作本地开发服务
  • 原生 Swift + AppKit(非 Electron),启动快、内存占用低,GPU 加速渲染
  • 复用现有 Ghostty 配置(~/.config/ghostty/config),主题、字体、补全无缝迁移
  • 免费开源,由 Ghostty 作者 Mitchell Hashimoto 公开推荐

缺点:

  • 仅支持 macOS,且版本较新,生态仍在快速迭代
  • 工作区(workspace)、标签(surface)、通知系统等概念较多,需要一定适应成本

安装(Homebrew):

bash
brew tap manaflow-ai/cmux
brew install --cask cmux

也可从官网下载 .dmg,拖入「应用程序」后由 Sparkle 自动更新。后续升级:

bash
brew upgrade --cask cmux

接入 AI 代理:

bash
# 为受支持的代理安装会话恢复 hooks(Claude Code、Codex、OpenCode 等)
cmux hooks setup

# 在脚本或 hook 中手动触发通知
cmux notify --title "构建完成" --body "任务已结束"

# 一条命令启动 Claude Code 的 teammate 模式,队友以原生分屏呈现
cmux claude-teams

常用快捷键:

功能快捷键
新建工作区⌘ N
跳转工作区 1–8⌘ 18
新建标签(surface)⌘ T
向右分屏⌘ D
向下分屏⌘ ⇧ D
方向聚焦窗格⌥ ⌘ ← → ↑ ↓
打开通知面板⌘ I
跳到最新未读⌘ ⇧ U
浏览器分屏打开⌘ ⇧ L

与 Ghostty 的关系

cmux 不是 Ghostty 的分支,而是像应用使用 WebKit 那样,把 libghostty 作为终端渲染库使用。因此它读取你已有的 Ghostty 配置,渲染性能与 Ghostty 一致,只是额外提供了面向 AI 工作流的标签管理、通知和内置浏览器能力。

tmux ⭐

官网: https://github.com/tmux/tmux

经典终端复用器,功能强大,生态成熟。

优点:

  • 成熟稳定,生态丰富
  • 社区资料和插件多
  • 配置灵活,可高度定制
  • 被广泛用于服务器运维场景

缺点:

  • 默认配置不够友好,需要较多调校
  • 学习曲线较陡
  • 快捷键默认不直观

安装(Homebrew):

bash
brew install tmux

Ghostty ⭐

官网: https://ghostty.org/

现代化终端应用,适合需要高性能渲染和简洁配置体验的用户。

优点:

  • 启动和渲染速度快
  • 原生体验好,界面简洁
  • 适合长期作为主力终端

缺点:

  • 版本较新,部分高级配置资料不如 iTerm2 丰富
  • 需要单独安装

安装(Homebrew):

bash
brew install --cask ghostty

也可从官网下载页下载签名并公证过的 .dmg,拖入「应用程序」即可(universal binary,要求 macOS 13+)。

Zellij ⭐

官网: https://zellij.dev/

现代化终端复用器,提供开箱即用的窗格管理、会话管理和插件系统。

优点:

  • 开箱即用,无需复杂配置即可使用
  • 支持平铺和浮动窗格布局
  • 支持堆叠窗格(Stacked Panes),节省屏幕空间
  • 内置会话管理器、文件选择器等实用插件
  • 支持布局文件(KDL 格式),可预定义工作环境
  • 内置 Web 客户端,可在浏览器中访问会话
  • 原生支持 macOS、Linux 和 Windows
  • 界面友好,状态栏和标签栏可视化强
  • 键位提示清晰,学习曲线低于 tmux

缺点:

  • 相对 tmux 较新,生态和资料相对较少
  • 配置文件格式(KDL)与传统配置语法不同

安装(Homebrew):

bash
brew install zellij

也可从 GitHub Releases 下载 macOS 预编译版本。

基本使用:

bash
# 启动 Zellij
zellij

# 创建命名会话
zellij --session my-session

# 列出所有会话
zellij list-sessions

# 附加到会话
zellij attach my-session

常用快捷键:

功能快捷键
显示帮助Ctrl + g
新建窗格(水平)Alt + n
新建窗格(垂直)Alt + -
切换窗格Alt + 方向键
浮动窗格Alt + f
新建标签页Ctrl + t, n
切换标签页Alt + 数字
搜索模式Ctrl + s
退出会话Ctrl + q

为什么选择 Zellij?

相比传统的 tmux,Zellij 提供了更现代的用户体验:界面更友好、配置更简单、开箱即用。如果你需要在终端中同时运行多个程序,或者需要持久化会话(断开后可恢复),Zellij 是个很好的选择。

Warp

官网: https://www.warp.dev/download

现代化终端工具,主打命令块、补全、工作流和 AI 辅助能力。

优点:

  • 命令按块展示,历史输出更容易定位和复制
  • 支持命令补全、工作流和团队共享能力
  • 内置 AI 辅助,适合频繁执行复杂命令的场景
  • 支持 Apple Silicon 和 Intel Mac

缺点:

  • 部分 AI 和团队能力需要账号或订阅
  • 交互模型不同于传统终端,需要适应

安装:

官网下载页下载 .dmg,拖入「应用程序」即可。

iTerm2

官网: https://iterm2.com/

macOS 经典第三方终端应用,配置能力丰富。

优点:

  • 多窗格、Profiles、快捷键配置成熟
  • 生态资料多,适合深度定制
  • 与 tmux、ssh 等场景结合成熟

缺点:

  • 配置项较多,新手需要适应
  • 外观和交互需要手动调校

安装:

官网下载 .dmg,或通过 Homebrew:

bash
brew install --cask iterm2

Homebrew

官网: https://brew.sh/

Homebrew 是 macOS 常用包管理器,用来安装 Git、Node.js、nvm、cmux、开发工具和桌面应用。

安装:

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Apple Silicon 机型安装后,通常需要把 Homebrew 写入 Shell 环境:

bash
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Intel 机型常见路径是 /usr/local/bin/brew,按安装脚本输出提示处理即可。

终端美化

提升终端视觉体验的提示符与字体方案。

Starship ⭐

官网: https://starship.rs/

Starship 是用 Rust 编写的跨平台提示符工具,启动极快、配置集中在单个文件,可显示 Git 状态、语言版本、执行时长等信息,可作为 Oh My Zsh 主题的轻量替代。

安装:

bash
curl -sS https://starship.rs/install.sh | sh

配置 zsh:

~/.zshrc 末尾添加:

bash
eval "$(starship init zsh)"

重新打开终端即可生效。配置文件位于 ~/.config/starship.toml(默认不存在,按需创建)。

与 Oh My Zsh 的取舍

Oh My Zsh 偏重插件和别名管理,Starship 专注提示符渲染,二者可以共存:用 Oh My Zsh 管理插件,用 Starship 接管提示符。若只想要一个简洁高性能的提示符,也可单独使用 Starship。

Maple Font

下载地址: https://github.com/subframe7536/maple-font

Maple Font 是专为程序员设计的等宽字体,支持连字(Ligatures)和 Nerd Font 图标。

安装:

  1. 从 GitHub Releases 下载 MapleMono-NF 版本
  2. 双击字体文件安装到字体册

也可通过 Homebrew 安装:

bash
brew install --cask font-maple-mono-nf

配置终端:

  • cmux / Ghostty:在 ~/.config/ghostty/config 中添加(cmux 复用 Ghostty 配置):

    ini
    font-family = Maple Mono NF
  • iTerm2:打开 Settings → Profiles → Text → Font,选择 Maple Mono NF

连字效果

Maple Font 支持连字,=> 会显示为箭头,!= 会显示为不等号等,提升代码可读性。

Shell 增强

一组提升输入建议、语法高亮、查找、跳转和文件管理效率的现代工具。

zsh-autosuggestions

官网: https://github.com/zsh-users/zsh-autosuggestions

为 zsh 提供基于历史记录的灰色命令建议,输入命令时会自动显示最可能的补全内容,按 End 接受建议。

安装(Homebrew):

bash
brew install zsh-autosuggestions

配置 zsh:

~/.zshrc 中添加:

bash
source "$(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh"

zsh-syntax-highlighting

官网: https://github.com/zsh-users/zsh-syntax-highlighting

为 zsh 提供实时语法高亮:可执行命令通常显示为绿色,错误命令显示为红色,路径、参数和字符串也会按类型着色。

安装(Homebrew):

bash
brew install zsh-syntax-highlighting

配置 zsh:

~/.zshrc 末尾添加:

bash
source "$(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"

加载顺序

zsh-syntax-highlighting 需要尽量放在 ~/.zshrc 最后加载,避免被其他插件覆盖高亮规则。

fzf

官网: https://github.com/junegunn/fzf

通用的命令行模糊查找器,可对历史命令、文件、目录等任意列表做交互式过滤,也是 zoxide、yazi 等工具的底层依赖。

安装:

bash
brew install fzf

也可从 GitHub Releases 下载预编译版本。

配置 zsh:

~/.zshrc 末尾添加(启用快捷键与补全):

bash
eval "$(fzf --zsh)"

常用快捷键:

功能快捷键
模糊搜索历史命令Ctrl + r
模糊查找文件并插入命令行Ctrl + t
模糊跳转目录Alt + c

fd

官网: https://github.com/sharkdp/fd

现代化文件查找工具,可作为 find 的高效替代品,默认忽略 .gitignore、隐藏文件和二进制目录,输出更简洁,常与 fzf、yazi 搭配使用。

安装:

bash
brew install fd

也可从 GitHub Releases 下载预编译版本。

基本使用:

bash
# 按文件名查找
fd config

# 查找指定扩展名
fd -e md

# 包含隐藏文件
fd -H ssh

# 不忽略 .gitignore
fd -I node_modules

与 find 的区别

fd 更适合日常交互式查找:默认规则更贴近日常开发场景,命令也更短;如果需要完全兼容 POSIX 脚本,仍应使用 find

ripgrep

官网: https://github.com/BurntSushi/ripgrep

极速文本搜索工具,命令为 rg,可作为 grep 的高效替代品。默认递归搜索、尊重 .gitignore、跳过隐藏和二进制文件,是代码库搜索的首选,也被 yazi、编辑器和脚本广泛使用。

安装:

bash
brew install ripgrep

也可从 GitHub Releases 下载预编译版本。

基本使用:

bash
# 递归搜索内容
rg 'TODO'

# 指定文件类型
rg 'useState' -t ts

# 忽略大小写
rg -i 'error'

# 只显示匹配的文件名
rg -l 'deprecated'

bat

官网: https://github.com/sharkdp/bat

cat 的现代化替代品,提供语法高亮、行号、Git 变更标记和分页,浏览配置文件和源码更直观。

安装:

bash
brew install bat

也可从 GitHub Releases 下载预编译版本。

基本使用:

bash
# 查看文件(带语法高亮和行号)
bat ~/.zshrc

# 指定语言高亮
bat -l yaml config.txt

# 去除装饰,仅着色
bat -p file.log

设置别名

可在 ~/.zshrc 中添加 alias cat='bat',让 cat 也带上高亮。

zoxide

官网: https://github.com/ajeetdsouza/zoxide

智能的 cd 替代品,记录访问过的目录,之后只需输入路径片段即可快速跳转。

安装:

bash
brew install zoxide

也可从 GitHub Releases 下载预编译版本。

配置 zsh:

~/.zshrc 末尾添加(放在 fzf 初始化之后):

bash
eval "$(zoxide init zsh)"

基本使用:

bash
# 跳转到最匹配 "proj" 的历史目录
z proj

# 配合 fzf 交互式选择匹配目录
zi proj

接管 cd

如需让 z 完全替代 cd,可改用:eval "$(zoxide init --cmd cd zsh)"

yazi

官网: https://yazi-rs.github.io/

用 Rust 编写的极速终端文件管理器(TUI),支持图片预览、异步任务和 Vim 风格操作,并能调用 fzf、zoxide、fd、ripgrep 增强查找。

安装:

bash
# 主程序 + 推荐依赖(预览与查找能力)
brew install yazi ffmpeg sevenzip jq poppler fd ripgrep fzf zoxide imagemagick

也可从 GitHub Releases 下载预编译版本。

Shell 包装函数:

yazi 退出时默认不会改变所在目录。官方建议在 ~/.zshrc 中加入 y 包装函数,退出时自动 cd 到最后浏览的目录:

bash
function y() {
	local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
	command yazi "$@" --cwd-file="$tmp"
	IFS= read -r -d '' cwd < "$tmp"
	[ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd"
	command rm -f -- "$tmp"
}

之后用 y 启动(而非 yazi),按 q 退出并切换目录,按 Q 退出但不切换。

lazygit

官网: https://github.com/jesseduffield/lazygit

Git 终端 UI,把暂存、提交、分支、变基、stash 等操作集中到一个可视化界面,减少手敲 Git 命令。

安装:

bash
brew install lazygit

也可从 GitHub Releases 下载预编译版本。

基本使用:

bash
# 在 Git 仓库目录下启动
lazygit

设置别名

可在 ~/.zshrc 中添加 alias lg='lazygit',用 lg 快速启动。

Oh My Zsh

官网: https://ohmyz.sh/

Oh My Zsh 是 zsh 配置框架,适合统一管理主题、插件和常用 Shell 配置。

安装:

bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

常用配置位置:

bash
code ~/.zshrc

插件建议

macOS 日常开发可先保持插件精简,例如 gitzsh-autosuggestionszsh-syntax-highlighting。插件太多会拖慢终端启动。