引言:多终端切换之痛
如果你经常在终端中与 Claude Code 协作,迟早会面临一个非常现实的问题——如何在多个开发任务之间高效地来回切换?
过去常见的解决方案是 tmux,但坦率地说,tmux 毕竟是上世纪末的产物:命令繁多,很难记住,界面也缺乏美感,用起来总有种在操作老旧服务器控制台的感觉。
直到有一次在 X 上闲逛,看到 Claude Code 之父 Boris 发了一条推文,发现他本人使用的是 Ghostty。顺手试了一下,结果一发不可收拾,接着又挖到了 Yazi 和 Lazygit。这三样工具组合在一起,直接让整个终端工作流焕然一新。
今天就来聊聊这套终端三件套:
- ?️ Ghostty:现代化的终端模拟器,原生支持多标签页和分屏
- ? Yazi:用 Rust 编写的闪电级文件管理器,预览功能强大
- ? Lazygit:可视化的 Git TUI,用快捷键搞定繁琐的 git 命令
一、Ghostty:让终端回归现代
1.1 为什么是 Ghostty?
Ghostty 是 HashiCorp 创始人 Mitchell Hashimoto 亲自打造的新一代终端模拟器,核心竞争力非常明确:
- 原生 UI:macOS 采用 Swift + AppKit,Linux 使用 GTK4,界面完全融入系统本身的风格
- GPU 加速渲染:macOS 依托 Metal,Linux 走 OpenGL,流畅度几乎拉满
- 开箱即用:基本零配置就可以获得相当出色的体验
- 内置分屏:原生支持 tabs 和 splits,根本无需再折腾 tmux
1.2 核心操作
标签页管理:
| 操作 | macOS | Linux |
|---|---|---|
| 新建标签页 | Cmd + T | Ctrl + Shift + T |
| 切换标签页 | Cmd + 1~9 | Ctrl + 1~9 |
| 关闭标签页 | Cmd + W | Ctrl + Shift + W |
分屏操作:
| 操作 | macOS | Linux |
|---|---|---|
| 向右分屏 | Cmd + D | Ctrl + Shift + E |
| 向下分屏 | Cmd + Shift + D | Ctrl + Shift + O |
| 切换分屏 | Cmd + Shift + [/] | Ctrl + Shift + [/] |
| 切换焦点(上下左右) | Cmd + Option + 方向键 | Ctrl + Shift + 方向键 |
| 最大化当前分屏 | Cmd + Shift + Enter | Ctrl + Shift + Enter |
1.3 典型布局
用 Claude Code 开发时,这种分屏布局效果非常出色:
┌─────────────────────┬──────────────────┐│ │││Claude Code│Yazi││ (主开发对话) │ (文件浏览器) ││ ││├─────────────────────┴──────────────────┤│Lazygit ││ (Git 操作区) │└────────────────────────────────────────┘
- 左上:Claude Code 主力工作区
- 右上:Yazi 文件管理,随时浏览目录结构
- 下方:Lazygit,实时查看 Git 状态并提交
二、Yazi:闪电文件管理器
2.1 为什么是 Yazi?
Yazi(GitHub: sxyazi/yazi)是用 Rust 编写的异步终端文件管理器,名字「ya」在中文里就是「鸭子」的意思 ?。
与 ranger、nnn 这些老牌文件管理器相比,Yazi 最大的杀手锏是快——异步 I/O 加上 Rust 的性能底子,打开大目录时几乎感觉不到延迟。
2.2 核心功能
1. 三栏 Miller Columns 布局
Yazi 采用类似 Ranger 的三栏布局:左侧是父目录,中间是当前目录,右侧是预览区域。
2. 强大的文件预览
支持的预览类型相当丰富:
- 文本文件、代码文件(带高亮显示)
- 图片(需要终端支持图片协议,Ghostty 正好支持 Kitty 图片协议)
- 视频(可显示缩略图)
- PDF、Office 文档
- 压缩包内部内容
3. 异步任务系统
复制、移动大文件时,操作在后台异步执行,可以实时查看进度、取消任务,界面不会被卡住。
4. 搜索能力
- 按文件名搜索:集成了
fd - 按内容搜索:集成了
rg(ripgrep) - 实时增量查找:边输入边显示匹配结果
5. 插件生态
Yazi 拥有活跃的插件生态,可以扩展主题、预览类型、自定义快捷键等。
2.3 基本快捷键
| 操作 | 快捷键 |
|---|---|
| 进入目录 / 打开文件 | l 或 → 或 Enter |
| 返回上级目录 | h 或 ← |
| 上 / 下移动 | k / j |
| 回到顶部 / 底部 | gg / G |
| 选中文件 | Space |
| 全选 | v |
| 复制 | y |
| 剪切 | x |
| 粘贴 | p |
| 删除(移入回收站) | d |
| 永久删除 | D |
| 新建文件 | a(末尾加 / 则新建目录) |
| 重命名 | r |
| 批量重命名 | R |
| 搜索文件名 | f |
| 搜索文件内容 | S(需要 rg) |
| 跳转(zoxide) | z |
| 切换隐藏文件 | . |
| 新建标签页 | t |
| 退出 | q |
2.4 配合 Ghostty 使用技巧
Ghostty 支持 Kitty 图片协议,配合 Yazi 可以在终端里直接预览图片,完全不用额外打开外部查看器:
# 安装 Yazi 后,设置 shell 函数,退出时自动跳转到 Yazi 当前目录# 在 ~/.zshrc 或 ~/.bashrc 中加入:function y() {local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"yazi "$@" --cwd-file="$tmp"if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; thenbuiltin cd -- "$cwd"firm -f -- "$tmp"}
这样用 y 命令启动 Yazi,退出后终端会自动跳转到 Yazi 最后所在的目录,非常顺手。
三、Lazygit:可视化 Git 操作
3.1 为什么是 Lazygit?
Lazygit(GitHub: jesseduffield/lazygit)是一个 Git 的终端可视化界面(TUI),它把繁琐的 git 命令行替换成了直观的键盘操作。
对于 Claude Code 用户来说,Lazygit 的价值尤为突出:AI 会一次性修改大量文件,而 Lazygit 可以让你一眼看清所有改动,精确控制哪些改动需要被提交。
3.2 界面组成
Lazygit 的界面分为 6 个面板:
| 面板 | 快捷键 | 说明 |
|---|---|---|
| Status | 1 | 当前仓库概览、最近仓库列表 |
| Files | 2 | 已修改的文件列表 |
| Branches | 3 | 本地和远程分支列表 |
| Commits | 4 | 当前分支的提交历史 |
| Stash | 5 | 暂存区管理 |
| Preview | — | 预览区,跟随当前选中内容变化 |
3.3 核心操作技巧
日常提交流程(最常用):
| 操作 | 快捷键 |
|---|---|
| 暂存 / 取消暂存单个文件 | Space |
| 暂存所有文件 | a |
| 提交已暂存的改动 | c |
| 修改上一次提交信息 | A(Amend) |
| Push 到远程 | P(大写) |
| Pull 最新代码 | p(小写) |
分支管理:
| 操作 | 快捷键 |
|---|---|
| 新建分支 | n(在 Branches 面板) |
| 切换分支 | Space(在 Branches 面板) |
| 删除分支 | d |
| 合并分支 | M |
实用技巧:
| 操作 | 快捷键 |
|---|---|
| 撤销上一次 git 操作 | z |
| 重做(撤销的反向) | Z |
| 暂存改动(stash) | s |
| 丢弃文件改动 | d(在 Files 面板) |
| 查看所有快捷键 | ? |
| 退出 | q |
3.4 配合 Claude Code 的使用姿势
Claude Code 完成一批修改后,标准处理流程是这样的:
- 切换到 Lazygit 所在的分屏
- 在 Files 面板逐一查看 Claude 的修改,按
Enter在预览区审查 diff - 确认每个文件无误后按
Space暂存 - 按
c输入 commit message 提交 - 按
P推送到远程
整个过程不需要输入一条 git 命令,全程可视化操作。
四、三件套协同工作
4.1 实际效果截图
从图中可以直观看到,三个工具在 Ghostty 的分屏中同时运行:左侧 Claude Code 正在进行开发对话,右侧 Yazi 随时浏览文件结构,下方 Lazygit 实时监控 Git 状态。
4.2 与 tmux 对比
| 维度 | tmux | Ghostty + Yazi + Lazygit |
|---|---|---|
| 界面美观 | ⚠️ 纯文字,较古老 | ✅ 原生 UI,现代感强 |
| 学习成本 | ⚠️ 命令多、前缀键难记 | ✅ 各工具专注单一职责 |
| 文件管理 | ❌ 无内建能力 | ✅ Yazi 强大预览 |
| Git 操作 | ❌ 无内建能力 | ✅ Lazygit 可视化 |
| 配置复杂度 | ⚠️ 需要 .tmux.conf | ✅ 开箱即用 |
| 远程服务器 | ✅ SSH 环境首选 | ⚠️ 需要本地安装 |
总结
终端三件套让多任务开发变得直观高效:
- Ghostty:替代系统终端,原生分屏让多任务一目了然
- Yazi:替代
ls+cd+cat,文件管理和预览一气呵成 - Lazygit:替代
git add/commit/push,可视化 Git 操作精确可控
对于深度使用 Claude Code 的开发者来说,这套组合尤其有价值:AI 的批量修改需要精确的人工审查,Lazygit 提供的文件级 diff 视图让你在提交之前能够清晰掌控每一行改动。
