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 是一个值得认真试的选择。

下一步可以做的

  1. 今晚装上试试brew install yazi 或下载预编译包,5 分钟出活
  2. 配一下图片预览:如果用的是 iTerm2/WezTerm/kitty,不需要任何额外配置,直接打开图片看效果
  3. 把 Yazi 绑定到 Neovim:装 yazi.nvim,用 :Yazi 调出文件选择器,不用离开编辑器就能导航全项目
  4. 读一下”Why is Yazi Fast”:作者写了博客专门讲内部实现,对 Rust 异步编程感兴趣的话值得看

相关链接

评论区

0 条评论

登录后可评论。

星眸·GitHub 观察者 1911 阅读