三个开源终端工具分别对应写代码时的三个环节:Yazi 用来浏览和预览文件,fzf 用来从一长串候选里挑出一项,Lazygit 用来检查和暂存 Git 改动。本文只根据各项目官方文档里写明的行为,说明怎么把它们串成一个循环。核对的版本:fzf 0.74.5、Lazygit 0.66.2、Yazi 26.9.1。Boloop 没有为本文安装或运行这些工具,请以你实际安装版本的文档为准。
三个工具各做什么、不做什么
- fzf 从标准输入读取候选行,把选中的那一行写到标准输出。没有管道输入时,用内置的文件遍历生成候选列表。它筛选的是名称,不会搜索每个文件的内容。
- Yazi 是用 Rust 写的终端文件管理器,支持文件预览、多标签、跨目录选择、搜索集成和批量重命名。文件类型识别需要
file,其他预览要看可选工具。 - Lazygit 是 Git 的终端界面,能看 diff,也能只暂存某个 hunk 或某几行。它会执行真正改变仓库状态的 Git 操作,先在可以恢复的仓库里练手。
第 1 步:配置 fzf 的 shell 集成
fzf 的 README 给每种 shell 一行配置:
# bash
eval "$(fzf --bash)"
# zsh
source <(fzf --zsh)
# fish
fzf --fish | source配置后有三个快捷键:CTRL-T 把选中的文件和目录粘到命令行,CTRL-R 从历史命令里挑一条粘到命令行,ALT-C 进入选中的目录。先试最基本的选择(ls | fzf,回车选中、Esc 取消),再考虑自定义触发符。Boloop 的 fzf 页面记录了一条关于 Bash 自定义补全触发符的未关闭反馈。
第 2 步:用 Yazi 打开项目,退出时留在该目录
输入 yazi 启动,按 q 退出,按 F1 或 ~ 打开帮助。Yazi 快速上手文档建议加一个 y shell 包装函数:退出 Yazi 时,shell 会切到你刚才浏览的目录。请从官方快速上手页面复制对应 shell 的版本,不要手打。
在 Yazi 里,默认键位把 z 绑定为“通过 fzf 跳到文件或目录”,Z 绑定为“通过 zoxide 跳到目录”。z 需要 fzf 0.53.0 或更新版本,zoxide 也依赖 fzf。前两个工具就在这里接上。
预览依赖额外工具:JSON 用 jq,PDF 用 poppler,视频缩略图用 ffmpeg,找文件用 fd,搜内容用 rg。图片预览取决于终端协议(Kitty、iTerm2、Sixel 或降级方案),请对照官方兼容表检查你用的终端。
第 3 步:用 Lazygit 检查并暂存
用包装函数退出 Yazi 后,shell 已经在项目目录里。运行 lazygit,README 里写的步骤是:
- 在改动的文件上按
0,聚焦它的 diff。 - 按空格暂存当前 hunk,并跳到下一个。
- 按
a逐行选择,按v选一段范围。 - 按
Tab切到已暂存面板,在那里按空格取消暂存。 - 按
c直接提交,不用离开 diff。
提交前看一眼已暂存面板。干净的暂存 diff 只说明改了什么,不能证明改动能用。可以配合我们的 AI 生成代码验收清单一起用。
完整循环
y打开 Yazi,预览文件,按z用 fzf 跳转。q退出,shell 停在该目录。- 自己改代码,或让编码 agent 改。
lazygit检查,只暂存该进这次提交的部分,然后提交。CTRL-R找回上次跑过的测试或构建命令。
我们的判断:这个顺序适合有 agent 参与的开发,因为 agent 可能一次改很多文件,Lazygit 的按 hunk 暂存方便把它们拆成小提交。这是观点,不是测评结果。
常见问题
三个工具必须一起装吗?
不用,每个都能单独用。Yazi 的 z 跳转需要 fzf(0.53.0 或更新);Lazygit 不依赖另外两个。
fzf 会搜索文件内容吗?
不会。fzf 只筛选它收到的行。要搜内容,Yazi 文档把 rg(ripgrep)列为可选工具。
Yazi 为什么不显示图片预览?
图片预览取决于终端协议,有些终端还有最低版本要求,终端复用器也会影响结果。请按 Yazi 的图片预览指南检查你的环境。
能直接在正式仓库里试 Lazygit 吗?
它执行的是真实的 Git 操作。先在练习仓库或可恢复的副本里试,并查看你所装版本的快捷键说明。
本文对应哪些版本?
fzf 0.74.5、Lazygit 0.66.2、Yazi 26.9.1,核对时间为 2026 年 10 月下旬到 11 月初。快捷键可能随版本变化。
来源
- fzf README:https://github.com/junegunn/fzf
- Lazygit README:https://github.com/jesseduffield/lazygit
- Yazi 安装:https://yazi-rs.github.io/docs/installation
- Yazi 快速上手:https://yazi-rs.github.io/docs/quick-start
- Yazi 默认键位:https://github.com/sxyazi/yazi/blob/main/yazi-config/preset/keymap-default.toml