这篇是命令行工具系列里的工具总览版。
如果你更关心“为什么我后来决定彻底迁出 oh-my-zsh、以及迁移里到底踩了哪些坑”,可以继续看:
如果你只想先回答一个问题:
AI 编码场景下,哪些工具真的值得先装,分别解决什么问题?
那这篇就是给这个问题准备的。
如果你想再往下看“为什么现代 AI coding agent 最终会把体验问题做成 runtime 问题”,也可以继续读:
- Claude Code 主稿:/posts/claude-code-source-analysis/
这篇文章更适合做第一入口:先帮你建立一张工具地图,知道每种工具到底解决的是文件定位、会话管理、历史搜索,还是运行时接管。
在 AI 辅助编程时代,选对工具能让你的开发效率翻倍。作为一名长期使用 Mac 进行 AI 编码的开发者,我发现命令行工具的选择对工作流的影响远超想象。今天分享几个我每天都在用的神器,它们让我的 AI 编码体验提升了一个档次。

为什么命令行工具对 AI 编码如此重要?
在使用 Claude Code、Cursor 等 AI 编程助手时,你会发现:
- 频繁的文件切换:AI 可能同时修改多个文件,需要快速定位
- 大量的终端操作:运行测试、查看日志、管理进程
- 复杂的项目导航:在大型代码库中快速找到目标文件
- 多任务并行:同时运行开发服务器、测试、构建等
传统的 GUI 工具在这些场景下显得力不从心,而精心选择的命令行工具能让你如鱼得水。
这里的关键不是“命令行一定比 GUI 高级”,而是 AI 编码会把很多原本零散的小动作放大成一条高频链路:定位文件、切目录、查历史命令、打开日志、看测试输出、切会话。如果这条链路里每一步都慢一点、卡一点、绕一点,最后你对 AI 的整体体感也会变差。


一个真实案例:AI 给出下一步之后,真正拖慢你的往往不是模型
举个非常具体的案例。
当 Claude Code 或 Cursor 告诉你:
- 去看某个文件
- 切到某个目录
- 跑一条测试命令
- 盯一会儿日志
这件事表面上像“模型在给建议”,但真正决定体感的,其实是后面的执行链路是不是够短。
如果文件定位要翻目录,日志要切窗口,测试要重开 session,Node/Ruby 还可能被不同 runtime 抢所有权,那你的体验问题本质上就不是“AI 不够聪明”,而是终端工作流的调度链太长。
这也是我越来越在意这几类工具的原因:
fzf和Yazi解决的是定位问题Tmux解决的是 session 和日志观察问题mise解决的是 runtime 所有权问题Ghostty解决的是终端本身的交互成本问题
换句话说,这篇文章想解决的不是“推荐几个命令行玩具”,而是给 AI 编码场景补一条更顺的执行链。
1. fzf:模糊搜索的艺术
为什么选择 fzf?
fzf 是一个通用的命令行模糊查找器,它能让你在海量文件中秒速定位目标。当 AI 告诉你”请检查 src/components/UserProfile.tsx“时,你不需要手动 cd 进多层目录,一个快捷键就能直达。
安装与配置
1 | # 使用 Homebrew 安装 |
实战技巧
1. 快速打开文件(Ctrl+T)
在任何目录下按 Ctrl+T,输入文件名的几个字母,fzf 会实时过滤匹配的文件。选中后直接插入到命令行,配合 vim 或 code 使用:
1 | # 按 Ctrl+T,输入 "user",选择文件 |
2. 历史命令搜索(Ctrl+R)
当 AI 建议你运行某个之前执行过的复杂命令时,不用翻找历史记录:
1 | # 按 Ctrl+R,输入关键词如 "docker" |
3. 目录跳转(Alt+C)
快速切换到项目的任何子目录:
1 | # 按 Alt+C,输入 "comp" |
进阶配置
在 ~/.zshrc 中添加以下配置,让 fzf 更强大:
1 | # 使用 fd 替代 find(更快,自动忽略 .git) |
2. Ghostty:为 AI 编码而生的终端
为什么不用 iTerm2?
Ghostty 是一个用 Zig 编写的现代终端模拟器,专为性能和开发者体验设计。在 AI 编码场景下,它的优势明显:
- 极致性能:渲染速度比 iTerm2 快 3-5 倍,处理大量日志输出不卡顿
- GPU 加速:利用 Metal 渲染,滚动和动画丝滑流畅
- 原生 macOS 体验:完美支持 macOS 的手势和快捷键
- 配置简单:TOML 配置文件,清晰易懂
安装与配置
1 | # 使用 Homebrew 安装 |
创建配置文件 ~/.config/ghostty/config:
1 | # 字体配置 |
AI 编码场景优化
1. 分屏布局
当 AI 同时修改多个文件时,使用 Ghostty 的原生分屏:
1 | # Cmd+D 垂直分屏 |
2. 快速复制 AI 输出
Ghostty 支持智能选择,双击选中单词,三击选中整行,非常适合快速复制 AI 生成的代码片段。
3. Yazi:现代化的文件管理器
为什么需要 Yazi?
在 AI 编码时,你经常需要:
- 快速浏览项目结构
- 批量重命名文件
- 预览图片、PDF 等非文本文件
- 在多个目录间移动文件
Yazi 是一个用 Rust 编写的终端文件管理器,速度快、功能强、颜值高。
安装与配置
1 | # 安装 Yazi |
核心功能
1. 可视化文件浏览
1 | # 启动 Yazi |
2. 文件预览
Yazi 自动识别文件类型并显示预览:
- 代码文件:语法高亮
- 图片:缩略图
- PDF:首页预览
- 视频:帧预览
3. 批量操作
当 AI 建议重构文件结构时,Yazi 的批量操作非常高效:
1 | # 选中多个文件(Space) |
与 AI 工具集成
在 ~/.config/yazi/yazi.toml 中配置快捷键:
1 | [opener] |
现在在 Yazi 中按 Enter 就能用 VS Code 打开文件。
4. Tmux:终端复用的王者
为什么 AI 编码需要 Tmux?
使用 Claude Code 或 Cursor 时,你经常需要:
- 同时运行开发服务器、测试、构建
- 保持会话,即使终端关闭
- 在多个项目间快速切换
- 远程开发时保持连接
Tmux 是终端复用器,让你在一个终端窗口中管理多个会话。
安装与配置
1 | # 安装 Tmux |
创建配置文件 ~/.tmux.conf:
1 | # 改变前缀键为 Ctrl+a(更顺手) |
AI 编码工作流
典型的 Tmux 布局:
1 | ┌─────────────────────────────────────┐ |
创建这个布局:
1 | # 创建新会话 |
会话管理:
1 | # 创建新会话 |
进阶技巧
1. 会话持久化
使用 tmux-resurrect 插件,即使重启电脑也能恢复会话:
1 | # 保存会话 |
2. 与 AI 工具集成
在 Claude Code 中运行长时间任务时,使用 Tmux 后台运行:
1 | # 创建后台会话运行构建 |
5. 组合拳:打造完整工作流
场景 1:启动新项目
1 | # 1. 使用 fzf 快速找到项目目录 |
场景 2:AI 建议的多文件修改
1 | # 1. AI 说:"我修改了 3 个文件,请检查" |
场景 3:调试复杂问题
1 | # 1. 在 Tmux 中创建调试布局 |
场景 4:提交 AI 修改的代码
1 | # 1. 使用 Lazygit 可视化查看所有变更 |
6. 进阶工具:让 AI 编码更上一层楼
在掌握了前面的基础工具后,这些进阶工具能让你的 AI 编码效率再提升一个档次。它们都是 GitHub 上的热门项目,经过了大量开发者的实战检验。
Atuin:智能命令历史搜索 (⭐ 27.5K)
为什么需要 Atuin?
传统的 Ctrl+R 历史搜索有很多局限:
- 只能搜索当前机器的历史
- 无法按目录、时间过滤
- 搜索结果不够智能
当 AI 建议你运行一个复杂的命令时,你可能几天前在另一个项目中执行过类似的命令。Atuin 将所有命令历史存储在 SQLite 数据库中,支持跨设备同步,让你永远不会丢失有用的命令。
安装与配置
1 | # 安装 Atuin |
AI 编码场景
场景 1:找回 AI 建议的复杂命令
1 | # 按 Ctrl+R,输入关键词 |
场景 2:跨项目复用命令
AI 在项目 A 中建议的测试命令,在项目 B 中也能快速找到并复用:
1 | # 在项目 A 中执行过: |
进阶配置
在 ~/.config/atuin/config.toml 中配置:
1 | # 按目录过滤 |
Lazygit:Git 操作的可视化革命 (⭐ 55K)
为什么 AI 编码需要 Lazygit?
当 AI 同时修改 10 个文件时,传统的 git status 和 git diff 显得力不从心:
- 无法快速预览每个文件的变更
- 暂存/取消暂存操作繁琐
- 解决冲突时缺乏可视化
- 交互式 rebase 难以操作
Lazygit 提供了一个强大的终端 UI,让所有 Git 操作都变得直观和高效。
安装与配置
1 | # 安装 Lazygit |
创建 ~/.config/lazygit/config.yml:
1 | gui: |
AI 编码工作流
场景 1:快速查看 AI 的多文件修改
1 | # 启动 Lazygit |
场景 2:交互式暂存
AI 修改了一个文件的多个部分,但你只想提交其中一部分:
1 | # 在 Lazygit 中: |
场景 3:解决合并冲突
1 | # Lazygit 会高亮显示冲突文件 |
实用技巧
1 | # 快速修改上一次提交 |
Starship:智能提示符 (⭐ 53.7K)
为什么 AI 编码需要 Starship?
在 AI 编码时,你需要快速了解当前环境的上下文:
- 当前 Git 分支和状态
- Node/Python/Go 版本
- 是否在虚拟环境中
- 上一个命令是否成功
Starship 是一个跨 shell 的智能提示符,用 Rust 编写,速度极快,能实时显示所有关键信息。
安装与配置
1 | # 安装 Starship |
创建配置文件 ~/.config/starship.toml:
1 | # 简洁模式 |
AI 编码场景
提示符显示示例:
1 | ┌─ ~/projects/ai-app 🌱 feature/auth ✅3 📝2 |
当 AI 修改文件后,提示符会实时更新,让你一眼看出项目状态。
eza:现代化的 ls (⭐ 20.4K)
为什么需要 eza?
传统的 ls 命令输出单调,缺乏关键信息。eza 是 exa 的继任者,提供:
- 彩色输出和图标
- Git 状态集成
- 树形视图
- 更好的排序和过滤
在 AI 编码时,快速浏览项目结构和文件状态至关重要。
安装与配置
1 | # 安装 eza |
AI 编码场景
场景 1:快速查看项目结构
1 | # 使用 lt(tree)查看项目结构 |
场景 2:查看 Git 状态
1 | # 使用 ll 查看文件详情和 Git 状态 |
场景 3:按时间排序查看最近修改
1 | # 查看最近修改的文件(AI 刚修改的) |
进阶用法
1 | # 只显示目录 |
7. 额外推荐工具
bat:更好的 cat
1 | brew install bat |
fd:更快的 find
1 | brew install fd |
ripgrep:更快的 grep
1 | brew install ripgrep |
zoxide:智能目录跳转
1 | brew install zoxide |
总结
这些工具的组合让我的 AI 编码效率提升了至少 50%:
核心工具(必装)
- fzf - 秒速定位文件和命令
- Ghostty - 流畅的终端体验
- Yazi - 可视化文件管理
- Tmux - 强大的会话管理
进阶工具(强烈推荐)
- Atuin (⭐ 27.5K) - 智能命令历史,跨设备同步
- Lazygit (⭐ 55K) - Git 可视化操作,告别复杂命令
- Starship (⭐ 53.7K) - 智能提示符,实时显示上下文
- eza (⭐ 20.4K) - 现代化文件列表,Git 状态集成
辅助工具(锦上添花)
- bat - 语法高亮的文件查看
- fd - 更快的文件搜索
- ripgrep - 更快的内容搜索
- zoxide - 智能目录跳转
关键是要形成肌肉记忆。刚开始可能觉得学习曲线陡峭,但坚持使用 2-3 周后,这些操作会变得自然而然。
完整工作流示例
当 AI 助手建议你修改 10 个文件时,你的操作流程是:
1 | # 1. 查看修改了哪些文件 |
你的提示符会实时显示:
1 | ┌─ ~/projects/ai-app 🌱 feature/auth ✅3 📝2 ⬢ v20.11.0 |
这就是现代 AI 编码的正确打开方式。
你在用什么命令行工具提升 AI 编码效率?欢迎在评论区分享!
参考资源
- 12 Modern CLI Tools to Boost Your Productivity in 2026
- 20 CLI Tools That Made Me Mass-Uninstall Homebrew Defaults
- 5 Essential Git Tools Every Developer Needs in 2026
本文由 Claude Opus 4.6 辅助创作,工具链:Ghostty + Tmux + fzf + Yazi + Lazygit + Atuin + Starship + eza