Yazi:终端文件管理这件事,Rust给出了答案
Yazi:终端文件管理这件事,Rust给出了答案
yazi 在 GitHub 上已经拿到 38.3K Star 了。
用 Rust 写了一个终端文件管理器,全异步 I/O,非阻塞架构。支持图片预览、代码高亮、多标签页、批量重命名,还有插件系统和包管理器。
1、这东西解决了什么问题
终端里的文件管理器不少,ranger、lf、nnn 各有各的粉丝。但用久了都有一个共同的痛点:慢。
目录里文件一多,切进去要等。图片预览要等。大文件滚动要等。你习惯了 GUI 文件管理器的响应速度,回到终端就会觉得卡。
Yazi 把"快"放到了第一位。它的异步架构意味着读取文件列表、加载预览、处理缩略图这三件事可以同时进行,谁先完成谁先显示,不用排队等。
2、图片预览怎么做到的
终端里显示图片一直是个麻烦事。不同终端模拟器支持不同的协议:Kitty 有自己的协议,iTerm2 有另一种,还有 Sixel、ASCII art 回退方案。
Yazi 把这些协议全内置了。不管是 Kitty、WezTerm、Ghostty、Windows Terminal 还是 Konsole,打开就能看到图片,不用额外配置。对于 X11/Wayland 用户,还能对接 Uberzug++ 实现窗口系统级的图片覆盖。

3、插件系统和包管理器
Yazi 内置了 Lua 解释器,插件分三类:UI 插件可以重写大部分界面逻辑,功能插件扩展核心能力,还有自定义的预览器、预加载器。
它还给插件配了包管理器。一行命令安装主题和插件,支持版本锁定和自动更新。插件仓库里有 Git 集成、磁盘挂载管理这些实用工具。
4、特色功能
远程文件管理。Yazi 内置了虚拟文件系统,可以对接自定义搜索引擎,在终端里操作远程文件就像操作本地文件一样。
跨实例通信。基于客户端-服务器架构(不需要额外进程),用 Lua 发布-订阅模式实现多实例之间的状态同步。
Vim 风格交互。输入、选择、确认、提示组件都是 Vim 键位逻辑,cd 路径支持自动补全。习惯了 Vim 的人上手不用学新操作。
多标签页和跨目录选择。可以同时开多个标签页,在不同目录之间跳转和选择文件。

5、适合哪些人用
- 日常在终端里工作、需要频繁切换和管理文件的开发者
- 需要预览图片、视频、PDF 等多媒体文件但又不想离开终端的运维人员
- 喜欢 Vim 操作逻辑、希望文件管理也保持键盘驱动习惯的人
- 需要批量重命名、归档解压等批处理操作的场景
浙公网安备 33010602011771号