10.6k star,一个酷炫、开源的超强终端文件管理器
一句话介绍:rust写的基于async I/O的超快终端文件管理器
界面如下:
开源地址在文末
Yazi 是一个基于 Rust 语言和异步 I/O 的终端文件管理器,它的目标是提供一个高效、用户友好且可定制的文件管理体验。以下是关于 Yazi 项目的介绍文章。
Yazi 项目简介
Yazi是一个在 Rust 语言上构建的终端文件管理器,它基于非阻塞的异步 I/O 来实现操作。
这个项目旨在提供一个高效、用户友好且可定制的文件管理体验。
Yazi 的设计理念是通过全异步支持,利用多线程分散 CPU 任务,最大化地利用可用资源,从而达到快速响应和处理文件的目的。
Yazi 的特点
- 全异步支持:所有 I/O 操作都是异步的,CPU 任务分布在多个线程上,充分利用资源。
- 强大的异步任务调度和管理:提供实时进度更新、任务取消和内部任务优先级分配。
- 内置多种图像协议支持:与 Überzug++ 集成,几乎覆盖所有终端。
- 内置代码高亮和图像解码:结合预加载机制,大大加速图像和普通文件的加载。
- 并发插件系统:UI 插件(重写大部分 UI)、功能插件、自定义预览器/预加载器/获取器;只需一些 Lua 代码片段。
- 数据分发服务:基于客户端-服务器架构(无需额外的服务器进程),集成了基于 Lua 的发布-订阅模型,实现跨实例通信和状态持久化。
- 包管理器:一条命令安装插件和主题,保持它们始终更新,或将它们固定到特定版本。
- 与 fd、rg、fzf、zoxide 的集成:提供 Vim 风格的输入/选择/哪个/通知组件,cd 路径的自动补全。
- 多标签支持、跨目录选择、可滚动预览(视频、PDF、归档文件、目录、代码等)。
- 批量重命名、视觉模式、文件选择器。
- 主题系统、鼠标支持、垃圾箱、自定义布局、CSI u ... 等等。
如何快速使用
Yazi 的部署相对简单,可以通过以下步骤快速开始:
- 安装 Rust:首先确保你的系统中安装了 Rust 语言环境。
- 克隆仓库:使用
git clone https://github.com/sxyazi/yazi
命令克隆 Yazi 项目到本地。 - 编译项目:在项目根目录下运行
cargo build --release
来编译项目。 - 运行 Yazi:编译完成后,在
target/release
目录下会生成 Yazi 可执行文件,直接运行即可。
也可以直接采用包管理器安装
如windows环境,可以
scoop install yazi
# Install the optional dependencies (recommended):
scoop install unar jq poppler fd ripgrep fzf zoxide