41,415 颗星背后:Rust 写的 Yazi 凭什么成为终端文件管理的新天花板
41,415 颗星背后:Rust 写的 Yazi 凭什么成为终端文件管理的新天花板
如果你每天超过 6 小时泡在终端里,你大概率用过 ranger、nnn 或者 lf。它们的共同点是:用起来还行,但总有一些时刻让你想把键盘砸了——预览图片要配这个那个依赖、压缩包要看半天、大仓库里光标卡一下。
Yazi 想解决的问题就是这个。
它解决的是什么真问题
终端文件管理器存在快 20 年了,但很长时间里没有人在性能这件事上认真动过刀。ranger 用 Python 写,光标移动到哪一行就读取哪一行;lf 轻量,但功能扩展受限于 Go 的运行时。Yazi 的思路完全不同:全异步 I/O + Rust 的 zero-cost abstraction,让文件操作的每一个步骤都不阻塞主线程。
作者 sxyazi 在博客里详细解释了为什么 Yazi 这么快:所有文件元数据读取、缩略图生成、压缩包解析、代码高亮全部走异步任务调度,而且 CPU 密集型任务(图片解码、语法高亮)会分散到 worker 线程池里,不会卡 UI。
这带来的实际感受是:光标移动几乎没有延迟,即使目录里有几千个文件。
核心能力,哪些真正能用
图片预览是 Yazi 最常被提到的亮点。支持情况比大多数人的预期要宽:
- 主流终端内置支持:kitty(unicode placeholders)、iTerm2、WezTerm、Konsole、foot、Ghostty、Windows Terminal(需 v1.22+)、VSCode 集成终端、Rio(≥0.3.9)、Warp(macOS/Linux)
- X11/Wayland:需要额外装 Überzug++
- 不支持的终端:回退到 Chafa 生成 ASCII art 预览
实测在 iTerm2 和 WezTerm 下,PDF、图片、代码文件均可内联预览,不需要额外配置。压缩包(zip/tar.gz/rar)支持滚动预览内容,不需要解压。视频文件也可以预览帧。
插件系统基于 Lua,单文件安装,写法和 Neovim 插件非常接近。官方维护的插件仓里有 git 集成、mount manager(挂载管理)、文件传输等。社区还有专门的 yazi.nvim 插件,让 Neovim 用户可以在编辑器里直接调用 Yazi 做文件选择器,两个工具的上下文可以共享。
虚拟文件系统是一个容易被忽视的能力。它不只是读取远程文件,而是把远程存储(S3、FTP、SFTP 等)以挂载的方式接入,访问体验和本地文件一致。这个功能目前依赖社区插件维护,但对于经常在多台服务器之间跳转的开发者来说,这是一个值得关注的差异点。
安装门槛有多高
官方推荐用 cargo install yazi 安装,需要 Rust 工具链。不写 Rust 的话,用预编译包最省事:
# macOS/Linux (Shell)
curl -fsSL https://github.com/sxyazi/yazi/releases/download/v26.8.15/yazi-x86_64-unknown-linux-gnu.tar.gz | tar xz
# macOS Homebrew
brew install yazi
# Windows (Scoop)
scoop install yazi
v26.8.15 稳定版发布于 2026-08-15,同时有 nightly 版本每天自动构建。最近一次 nightly(2026-08-16)的 Linux x86_64 下载量 60 次,macOS aarch64 下载量 221 次——说明有稳定用户在跟进。
配置文件在 ~/.config/yazi/,默认有一个 yazi.toml 和 themes/ 目录。主题系统支持自定义颜色、图标(NERD FONTS 兼容),上手成本不算高。
适合谁,不适合谁
适合:
- 每天超过 4 小时在终端工作的开发者,尤其是全栈或 DevOps
- 需要频繁在服务器之间跳转、用 tmux 多路复用、靠键盘活着的人
- 已经习惯 Vim 操作方式(Yazi 的按键绑定和 Vim 比较接近)
- 想在大项目目录里快速定位文件、对比内容,但不想离开终端的人
不适合:
- 主要用 GUI 工具管理文件,偶尔才开终端的人(学习成本不划算)
- 需要深度集成桌面环境的功能(回收站、文件关联)的场景
- 期望开箱即用零配置、不愿意读文档的人
和竞品怎么选
| Yazi | ranger | lf | nnn | |
|---|---|---|---|---|
| 语言 | Rust | Python | Go | C |
| 异步 I/O | ✅ 原生 | ❌ | ❌ | ❌ |
| 内置图片预览 | ✅ | 需依赖 | 需依赖 | 需依赖 |
| 插件系统 | Lua 插件 | 内置 Lua | 无 | 无(但有衍生版) |
| 远程文件系统 | ✅ VFS 插件 | ❌ | ❌ | ❌ |
| 配置复杂度 | 中 | 高 | 低 | 低 |
| 内存占用 | 低 | 中 | 极低 | 极低 |
如果你已经在用 nnn 或 lf 并且够用,换 Yazi 的动力不大。但如果你受够了 ranger 的卡顿、想要图片预览但不想把终端配成一坨浆糊,Yazi 是一个值得认真试的选择。
下一步可以做的
- 今晚装上试试:
brew install yazi或下载预编译包,5 分钟出活 - 配一下图片预览:如果用的是 iTerm2/WezTerm/kitty,不需要任何额外配置,直接打开图片看效果
- 把 Yazi 绑定到 Neovim:装 yazi.nvim,用
:Yazi调出文件选择器,不用离开编辑器就能导航全项目 - 读一下”Why is Yazi Fast”:作者写了博客专门讲内部实现,对 Rust 异步编程感兴趣的话值得看
相关链接
- GitHub:https://github.com/sxyazi/yazi
- 官网:https://yazi-rs.github.io
- 快速入门:https://yazi-rs.github.io/docs/installation
- 为什么这么快(作者博客):https://yazi-rs.github.io/blog/why-is-yazi-fast
- 插件生态:https://github.com/yazi-rs/plugins
- yazi.nvim(Neovim 集成):https://github.com/mikavilpas/yazi.nvim
- Discord 社区(英文):https://discord.gg/qfADduSdJu
评论区
登录后可评论。