ClaudeCode武装三件套:Ghostty + Yazi + Lazygit 打造高效开发环境

ClaudeCode武装三件套:Ghostty + Yazi + Lazygit 打造高效开发环境

引言:多终端切换之痛

在终端里深度使用 Claude Code 一段时间后,你很快会遇到一个现实问题:

场景:前后端需求同时开发,一个终端跑 Claude Code,另一个查看日志,还需要随时管理文件、提交代码……多个终端窗口切来切去,既麻烦又不直观,完全看不到各终端的实时状态。

以前我的解法是 tmux。但 tmux 毕竟是上个世纪的工具:命令多、记不住,界面也不美观,感觉像在用古董。

直到我在 X 上看到 Claude Code 之父 Boris 的推文,他在用 Ghostty。我去试了试,然后又发现了 YaziLazygit,这套组合彻底改变了我的终端工作流。

今天我们就来聊这个终端三件套

  • 🖥️ 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,流畅到飞起
  • 开箱即用:几乎不需要配置就能有很好的体验
  • 内置分屏:不需要 tmux,原生支持 tabs 和 splits

官方下载地址:https://ghostty.org/download

1.2 核心操作

标签页管理

操作macOSLinux
新建标签页Cmd + TCtrl + Shift + T
切换标签页Cmd + 1~9Ctrl + 1~9
关闭标签页Cmd + WCtrl + Shift + W

分屏操作

操作macOSLinux
向右分屏Cmd + DCtrl + Shift + E
向下分屏Cmd + Shift + DCtrl + Shift + O
切换分屏Cmd + Shift + [/]Ctrl + Shift + [/]
切换焦点(上下左右)Cmd + Option + 方向键Ctrl + Shift + 方向键
最大化当前分屏Cmd + Shift + EnterCtrl + 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 的性能,打开大目录几乎感觉不到延迟。

官方 Release 下载:https://github.com/sxyazi/yazi/releases

2.2 核心功能

1. 三栏 Miller Columns 布局

Yazi 采用类似 Ranger 的三栏布局:左侧父目录、中间当前目录、右侧预览。

2. 强大的文件预览

支持预览的文件类型非常丰富:

  • 文本文件、代码文件(高亮显示)
  • 图片(需要支持图片协议的终端,Ghostty 支持 Kitty 图片协议)
  • 视频(缩略图)
  • PDF、Office 文档
  • 压缩包内容

3. 异步任务系统

复制、移动大文件时,操作在后台异步执行,可以实时查看进度、取消任务,不会卡住界面。

4. 搜索能力

  • 按文件名搜索:集成 fd
  • 按内容搜索:集成 rg(ripgrep)
  • 实时增量查找:边输入边显示匹配结果

5. 插件生态

Yazi 有活跃的插件生态,可以扩展主题、预览类型、自定义快捷键等。

2.3 基本快捷键

操作快捷键
进入目录 / 打开文件lEnter
返回上级目录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 函数可以在退出时 cd 到 yazi 当前目录# 在 ~/.zshrc 或 ~/.bashrc 中加入:functiony(){localtmp="$(mktemp -t"yazi-cwd.XXXXXX")" yazi "$@" --cwd-file="$tmp"ifcwd="$(cat -- "$tmp")"&&[-n"$cwd"]&&["$cwd"!="$PWD"];thenbuiltincd -- "$cwd"firm-f -- "$tmp"}

这样用 y 命令启动 Yazi,退出后终端会自动切换到你在 Yazi 中最后所在的目录。


三、Lazygit:可视化 Git 操作

3.1 为什么是 Lazygit?

Lazygit(GitHub: jesseduffield/lazygit)是一个 Git 的终端可视化界面(TUI),把繁琐的 git 命令行替换成可视化的键盘操作。

对于 Claude Code 用户来说,Lazygit 特别有价值:AI 会自动修改很多文件,用 Lazygit 可以一眼看清楚所有改动,精确控制哪些改动需要提交。

官方 Release 下载:https://github.com/jesseduffield/lazygit/releases(根据你的系统选择对应版本)

3.2 界面组成

Lazygit 的界面分为 6 个面板:

面板快捷键说明
Status1当前仓库概览、最近仓库列表
Files2已修改的文件列表
Branches3本地和远程分支列表
Commits4当前分支的提交历史
Stash5暂存区管理
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
⚠️ 注意P(Push)和 p(Pull)区分大小写,这是新手最容易搞混的两个操作,务必记清楚。

3.4 配合 Claude Code 的使用姿势

Claude Code 完成一批修改后,我的标准流程是:

  1. 切到 Lazygit 所在的分屏
  2. Files 面板逐一查看 Claude 的修改,按 Enter 可以在预览区看 diff
  3. 对每个文件确认无误后按 Space 暂存
  4. c 输入 commit message 提交
  5. P 推送到远程

整个过程无需输入一条 git 命令,完全可视化。


四、三件套协同工作

4.1 实际效果截图

在这里插入图片描述

如图所示,三个工具在 Ghostty 的分屏中同时运行:左侧 Claude Code 正在进行开发对话,右侧 Yazi 随时浏览文件结构,下方 Lazygit 实时监控 Git 状态。

4.2 与 tmux 对比

维度tmuxGhostty + Yazi + Lazygit
界面美观⚠️ 纯文字,较古老✅ 原生 UI,现代感强
学习成本⚠️ 命令多、前缀键难记✅ 各工具专注单一职责
文件管理❌ 无内建能力✅ Yazi 强大预览
Git 操作❌ 无内建能力✅ Lazygit 可视化
配置复杂度⚠️ 需要 .tmux.conf✅ 开箱即用
远程服务器✅ SSH 环境首选⚠️ 需要本地安装
说明:如果需要在远程服务器上工作,tmux 依然是不可替代的选择。三件套更适合本地开发场景。

总结

终端三件套让多任务开发变得直观高效:

  • Ghostty:替代系统终端,原生分屏让多任务一目了然
  • Yazi:替代 ls + cd + cat,文件管理和预览一气呵成
  • Lazygit:替代 git add/commit/push,可视化 Git 操作精确可控

对于深度使用 Claude Code 的开发者,这套组合特别有价值:AI 的批量修改需要精确的人工审查,Lazygit 的文件级 diff 视图让你在提交前清晰掌控每一行改动。


如果这篇文章对你有帮助,欢迎点赞、收藏、分享!有任何问题或建议,欢迎在评论区留言讨论。让我们一起学习,一起成长!

也欢迎访问我的个人主页发现更多宝藏资源

Read more

【Git:多人协作】Git多人协作实战:从同分支到多分支工作流

【Git:多人协作】Git多人协作实战:从同分支到多分支工作流

🔥艾莉丝努力练剑:个人主页 ❄专栏传送门:《C语言》、《数据结构与算法》、C/C++干货分享&学习过程记录、Linux操作系统编程详解、笔试/面试常见算法:从基础到进阶、测试开发要点全知道 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬艾莉丝的简介: 目录 艾莉丝的Gitee地址 1  ~>  多人协作 2  ~>  多人协作一:在同一分支下进行多人协作 2.1  完成准备工作 2.2  协作开发 2.2.1  我们的操作 2.2.2  小伙伴的操作 2.2.3  协作开发 2.3  将内容合并到master

By Ne0inhk
Git 用户名与邮箱配置指南

Git 用户名与邮箱配置指南

前言 在使用 Git 进行版本控制时,每一次代码提交(commit)都会记录提交者的身份信息。这些信息不仅用于追踪代码变更历史,还在团队协作、代码审查和开源贡献中发挥着重要作用。 Git 通过 用户名(user.name) 和 邮箱(user.email) 来标识开发者身份。正确配置这两项信息,是使用 Git 的第一步,也是确保提交记录清晰、可追溯的关键。 一、为什么需要设置用户名和邮箱? Git 是一个分布式版本控制系统,它不依赖中央服务器来管理用户身份。因此,每个开发者必须在本地明确声明自己的身份。Git 会在每次执行 git commit 时,自动将 user.name 和 user.email 写入提交记录。 如果没有正确设置,可能会导致: * 提交记录显示为 unknown 或默认系统用户名;

By Ne0inhk

上传本地文件(夹)代码到GitHub 超详细讲解最全命令集合(配图 适用全部)

下面我用最稳妥、最常用的方式,手把手教你把本地代码文件夹上传到 GitHub。不管你是第一次用 GitHub,还是之前总出错,按这个来基本不会翻车。 【注意】:https://github.com/beiyang366/LYVCSHOP  为作者的GitHub 仓库地址  一、准备工作(只需一次) 1️⃣ 注册 / 登录 GitHub 👉 https://github.com 登录即可(你应该已经有了) 2️⃣ 安装 Git(如果没装) 📥 下载地址(Windows / macOS / Linux): 👉 https://git-scm.com/ 安装完成后,打开 命令行 / Git Bash,输入: git --version 能看到版本号说明安装成功 ✅ 二、在

By Ne0inhk
从零构建可扩展 Flutter 应用:v1.0 → v2.0 全代码详解 -《已适配开源鸿蒙》

从零构建可扩展 Flutter 应用:v1.0 → v2.0 全代码详解 -《已适配开源鸿蒙》

* 个人首页: VON * 鸿蒙系列专栏: 鸿蒙开发小型案例总结 * 综合案例 :鸿蒙综合案例开发 * 鸿蒙6.0:从0开始的开源鸿蒙6.0.0 * 鸿蒙5.0:鸿蒙5.0零基础入门到项目实战 * Electron适配开源鸿蒙专栏:Electron for OpenHarmony * 本文章所属专栏:Flutter for OpenHarmony * 文章AtomGit地址:Template_V2.0 v1.0 → v2.0 全代码详解 * 从零构建可扩展 Flutter 应用:v1.0 → v2.0 全代码详解 * 🧱 第一阶段:v1.0 —— 干净的基础骨架 * ✅ 目标 * 📁 项目结构 * 1. `lib/main.dart`

By Ne0inhk