Yazi - ⚡️ 极速终端文件管理器

Yazi(意为“鸭子”)是一款使用 Rust 编写的终端文件管理器,基于非阻塞 async I/O。它旨在提供高效、易用且可定制的文件管理体验。

💡 一篇解释其内部工作原理的新文章:Why is Yazi Fast?

  • 🚀 完整的异步支持:所有 I/O 操作都是异步的,CPU 任务会分散到多个线程上运行,最大化利用可用资源。
  • 💪 强大的异步任务调度与管理:提供实时进度更新、任务取消,以及内部任务优先级分配。
  • 🖼️ 内置支持多种图像协议:同时集成了 Überzug++ 和 Chafa,几乎覆盖所有终端。
  • 🌟 内置代码高亮与图像解码:结合预加载机制,大幅提升图片和普通文件的加载速度。
  • 🔌 并发插件系统:支持 UI 插件(可重写大部分 UI)、功能插件、自定义 previewer / preloader / spotter / fetcher;只需编写少量 Lua 代码。
  • ☁️ 虚拟文件系统:支持远程文件管理和自定义搜索引擎。
  • 📡 数据分发服务:基于客户端-服务端架构构建(无需额外的独立服务进程),并集成基于 Lua 的发布-订阅模型,实现跨实例通信与状态持久化。
  • 📦 包管理器:可通过一条命令安装插件和主题,并保持更新,或将其固定到特定版本。
  • 🧰 集成 ripgrep、fd、fzf、zoxide
  • 💫 类 Vim 的 input / pick / confirm / which / notify 组件,以及 cd 路径自动补全
  • 🏷️ 多标签页支持、跨目录选择、可滚动预览(适用于视频、PDF、压缩包、代码、目录等)
  • 🔄 批量重命名、压缩包解压、Visual Mode、File Chooser、Git IntegrationMount Manager
  • 🎨 主题系统、鼠标支持、回收站、自定义布局、CSI u、OSC 52
  • … 以及更多功能!