Yazi - ⚡️ 闪电般快速的终端文件管理器
Yazi(意为"鸭子")是一个用Rust编写的终端文件管理器,基于非阻塞异步I/O。它旨在提供高效、用户友好且可定制的文件管理体验。
💡 一篇解释其内部工作原理的新文章:为什么Yazi这么快?
- 🚀 全面异步支持:所有I/O操作都是异步的,CPU任务分布在多个线程上,充分利用可用资源。
- 💪 强大的异步任务调度和管理:提供实时进度更新、任务取消和内部任务优先级分配。
- 🖼️ 内置支持多种图像协议:还集成了Überzug++和Chafa,几乎覆盖所有终端。
- 🌟 内置代码高亮和图像解码:结合预加载机制,大大加快了图像和普通文件的加载速度。
- 🔌 并发插件系统:UI插件(重写大部分UI)、功能插件、自定义预览器/预加载器/获取器;只需几行Lua代码。
- 📡 数据分发服务:基于客户端-服务器架构(无需额外的服务器进程),集成了基于Lua的发布-订阅模型,实现跨实例通信和状态持久化。
- 📦 包管理器:一键安装插件和主题,保持更新,或固定到特定版本。
- 🧰 集成ripgrep、fd、fzf、zoxide
- 💫 类Vim的输入/选择/which/通知组件,自动完成cd路径
- 🏷️ 多标签支持、跨目录选择、可滚动预览(适用于视频、PDF、压缩包、目录、代码等)
- 🔄 批量重命名、可视模式、文件选择器
- 🎨 主题系统、鼠标支持、回收站、自定义布局、CSI u
- ...以及更多!
https://github.com/sxyazi/yazi/assets/17523360/92ff23fa-0cd5-4f04-b387-894c12265cc7
⚠️ 注意:Yazi目前正在积极开发中,可能不稳定。API可能会在没有预先通知的情况下发生变化。
文档
讨论
- Discord服务器(主要英语):https://discord.gg/qfADduSdJu
- Telegram群组(主要中文):https://t.me/yazi_rs
图像预览
平台 | 协议 | 支持 |
---|---|---|
kitty | Kitty unicode占位符 | ✅ 内置 |
Konsole | Kitty旧协议 | ✅ 内置 |
iTerm2 | 内联图像协议 | ✅ 内置 |
WezTerm | 内联图像协议 | ✅ 内置 |
Mintty (Git Bash) | 内联图像协议 | ✅ 内置 |
foot | Sixel图形格式 | ✅ 内置 |
Ghostty | Kitty unicode占位符 | ✅ 内置 |
Black Box | Sixel图形格式 | ✅ 内置 |
VSCode | 内联图像协议 | ✅ 内置 |
Tabby | 内联图像协议 | ✅ 内置 |
Hyper | 内联图像协议 | ✅ 内置 |
X11 / Wayland | 窗口系统协议 | ☑️ 需要Überzug++ |
备选方案 | ASCII艺术(Unicode块) | ☑️ 需要Chafa |
详情请参阅 https://yazi-rs.github.io/docs/image-preview。
许可证
Yazi采用MIT许可证。更多信息请查看LICENSE文件。