终端环境
搭配 Homebrew、Oh My Zsh / Starship 和现代编程字体,通过 cmux、Ghostty、Zellij 等终端复用器构建 macOS 开发环境。
终端复用器
cmux ⭐
基于 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):
brew tap manaflow-ai/cmux
brew install --cask cmux也可从官网下载 .dmg,拖入「应用程序」后由 Sparkle 自动更新。后续升级:
brew upgrade --cask cmux接入 AI 代理:
# 为受支持的代理安装会话恢复 hooks(Claude Code、Codex、OpenCode 等)
cmux hooks setup
# 在脚本或 hook 中手动触发通知
cmux notify --title "构建完成" --body "任务已结束"
# 一条命令启动 Claude Code 的 teammate 模式,队友以原生分屏呈现
cmux claude-teams常用快捷键:
| 功能 | 快捷键 |
|---|---|
| 新建工作区 | ⌘ N |
| 跳转工作区 1–8 | ⌘ 1–8 |
| 新建标签(surface) | ⌘ T |
| 向右分屏 | ⌘ D |
| 向下分屏 | ⌘ ⇧ D |
| 方向聚焦窗格 | ⌥ ⌘ ← → ↑ ↓ |
| 打开通知面板 | ⌘ I |
| 跳到最新未读 | ⌘ ⇧ U |
| 浏览器分屏打开 | ⌘ ⇧ L |
与 Ghostty 的关系
cmux 不是 Ghostty 的分支,而是像应用使用 WebKit 那样,把 libghostty 作为终端渲染库使用。因此它读取你已有的 Ghostty 配置,渲染性能与 Ghostty 一致,只是额外提供了面向 AI 工作流的标签管理、通知和内置浏览器能力。
tmux ⭐
官网: https://github.com/tmux/tmux
经典终端复用器,功能强大,生态成熟。
优点:
- 成熟稳定,生态丰富
- 社区资料和插件多
- 配置灵活,可高度定制
- 被广泛用于服务器运维场景
缺点:
- 默认配置不够友好,需要较多调校
- 学习曲线较陡
- 快捷键默认不直观
安装(Homebrew):
brew install tmuxGhostty ⭐
现代化终端应用,适合需要高性能渲染和简洁配置体验的用户。
优点:
- 启动和渲染速度快
- 原生体验好,界面简洁
- 适合长期作为主力终端
缺点:
- 版本较新,部分高级配置资料不如 iTerm2 丰富
- 需要单独安装
安装(Homebrew):
brew install --cask ghostty也可从官网下载页下载签名并公证过的 .dmg,拖入「应用程序」即可(universal binary,要求 macOS 13+)。
Zellij ⭐
现代化终端复用器,提供开箱即用的窗格管理、会话管理和插件系统。
优点:
- 开箱即用,无需复杂配置即可使用
- 支持平铺和浮动窗格布局
- 支持堆叠窗格(Stacked Panes),节省屏幕空间
- 内置会话管理器、文件选择器等实用插件
- 支持布局文件(KDL 格式),可预定义工作环境
- 内置 Web 客户端,可在浏览器中访问会话
- 原生支持 macOS、Linux 和 Windows
- 界面友好,状态栏和标签栏可视化强
- 键位提示清晰,学习曲线低于 tmux
缺点:
- 相对 tmux 较新,生态和资料相对较少
- 配置文件格式(KDL)与传统配置语法不同
安装(Homebrew):
brew install zellij也可从 GitHub Releases 下载 macOS 预编译版本。
基本使用:
# 启动 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
macOS 经典第三方终端应用,配置能力丰富。
优点:
- 多窗格、Profiles、快捷键配置成熟
- 生态资料多,适合深度定制
- 与 tmux、ssh 等场景结合成熟
缺点:
- 配置项较多,新手需要适应
- 外观和交互需要手动调校
安装:
从官网下载 .dmg,或通过 Homebrew:
brew install --cask iterm2Homebrew
官网: https://brew.sh/
Homebrew 是 macOS 常用包管理器,用来安装 Git、Node.js、nvm、cmux、开发工具和桌面应用。
安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Apple Silicon 机型安装后,通常需要把 Homebrew 写入 Shell 环境:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"Intel 机型常见路径是 /usr/local/bin/brew,按安装脚本输出提示处理即可。
终端美化
提升终端视觉体验的提示符与字体方案。
Starship ⭐
Starship 是用 Rust 编写的跨平台提示符工具,启动极快、配置集中在单个文件,可显示 Git 状态、语言版本、执行时长等信息,可作为 Oh My Zsh 主题的轻量替代。
安装:
curl -sS https://starship.rs/install.sh | sh配置 zsh:
在 ~/.zshrc 末尾添加:
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 图标。
安装:
- 从 GitHub Releases 下载
MapleMono-NF版本 - 双击字体文件安装到字体册
也可通过 Homebrew 安装:
brew install --cask font-maple-mono-nf配置终端:
cmux / Ghostty:在
~/.config/ghostty/config中添加(cmux 复用 Ghostty 配置):inifont-family = Maple Mono NFiTerm2:打开 Settings → Profiles → Text → Font,选择
Maple Mono NF。
连字效果
Maple Font 支持连字,=> 会显示为箭头,!= 会显示为不等号等,提升代码可读性。
Shell 增强
一组提升输入建议、语法高亮、查找、跳转和文件管理效率的现代工具。
zsh-autosuggestions
官网: https://github.com/zsh-users/zsh-autosuggestions
为 zsh 提供基于历史记录的灰色命令建议,输入命令时会自动显示最可能的补全内容,按 → 或 End 接受建议。
安装(Homebrew):
brew install zsh-autosuggestions配置 zsh:
在 ~/.zshrc 中添加:
source "$(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh"zsh-syntax-highlighting
官网: https://github.com/zsh-users/zsh-syntax-highlighting
为 zsh 提供实时语法高亮:可执行命令通常显示为绿色,错误命令显示为红色,路径、参数和字符串也会按类型着色。
安装(Homebrew):
brew install zsh-syntax-highlighting配置 zsh:
在 ~/.zshrc 末尾添加:
source "$(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"加载顺序
zsh-syntax-highlighting 需要尽量放在 ~/.zshrc 最后加载,避免被其他插件覆盖高亮规则。
fzf
官网: https://github.com/junegunn/fzf
通用的命令行模糊查找器,可对历史命令、文件、目录等任意列表做交互式过滤,也是 zoxide、yazi 等工具的底层依赖。
安装:
brew install fzf也可从 GitHub Releases 下载预编译版本。
配置 zsh:
在 ~/.zshrc 末尾添加(启用快捷键与补全):
eval "$(fzf --zsh)"常用快捷键:
| 功能 | 快捷键 |
|---|---|
| 模糊搜索历史命令 | Ctrl + r |
| 模糊查找文件并插入命令行 | Ctrl + t |
| 模糊跳转目录 | Alt + c |
fd
官网: https://github.com/sharkdp/fd
现代化文件查找工具,可作为 find 的高效替代品,默认忽略 .gitignore、隐藏文件和二进制目录,输出更简洁,常与 fzf、yazi 搭配使用。
安装:
brew install fd也可从 GitHub Releases 下载预编译版本。
基本使用:
# 按文件名查找
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、编辑器和脚本广泛使用。
安装:
brew install ripgrep也可从 GitHub Releases 下载预编译版本。
基本使用:
# 递归搜索内容
rg 'TODO'
# 指定文件类型
rg 'useState' -t ts
# 忽略大小写
rg -i 'error'
# 只显示匹配的文件名
rg -l 'deprecated'bat
官网: https://github.com/sharkdp/bat
cat 的现代化替代品,提供语法高亮、行号、Git 变更标记和分页,浏览配置文件和源码更直观。
安装:
brew install bat也可从 GitHub Releases 下载预编译版本。
基本使用:
# 查看文件(带语法高亮和行号)
bat ~/.zshrc
# 指定语言高亮
bat -l yaml config.txt
# 去除装饰,仅着色
bat -p file.log设置别名
可在 ~/.zshrc 中添加 alias cat='bat',让 cat 也带上高亮。
zoxide
官网: https://github.com/ajeetdsouza/zoxide
智能的 cd 替代品,记录访问过的目录,之后只需输入路径片段即可快速跳转。
安装:
brew install zoxide也可从 GitHub Releases 下载预编译版本。
配置 zsh:
在 ~/.zshrc 末尾添加(放在 fzf 初始化之后):
eval "$(zoxide init zsh)"基本使用:
# 跳转到最匹配 "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 增强查找。
安装:
# 主程序 + 推荐依赖(预览与查找能力)
brew install yazi ffmpeg sevenzip jq poppler fd ripgrep fzf zoxide imagemagick也可从 GitHub Releases 下载预编译版本。
Shell 包装函数:
yazi 退出时默认不会改变所在目录。官方建议在 ~/.zshrc 中加入 y 包装函数,退出时自动 cd 到最后浏览的目录:
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 命令。
安装:
brew install lazygit也可从 GitHub Releases 下载预编译版本。
基本使用:
# 在 Git 仓库目录下启动
lazygit设置别名
可在 ~/.zshrc 中添加 alias lg='lazygit',用 lg 快速启动。
Oh My Zsh
Oh My Zsh 是 zsh 配置框架,适合统一管理主题、插件和常用 Shell 配置。
安装:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"常用配置位置:
code ~/.zshrc插件建议
macOS 日常开发可先保持插件精简,例如 git、zsh-autosuggestions、zsh-syntax-highlighting。插件太多会拖慢终端启动。