Yazi: 用 Rust 打造的超快速終端檔案管理器¶
專案: Yazi
GitHub: sxyazi/yazi
Stars: ⭐ 33.3K
語言: Rust
License: MIT
發布日期: 2026-02-28
💡 什麼是 Yazi?¶
名稱由來¶
Yazi(意思是「鴨子」🦆)是一個用 Rust 編寫的終端檔案管理器,基於**非阻塞異步 I/O**。
目標¶
提供**高效、用戶友好、可自訂**的檔案管理體驗。
🚀 核心特性¶
1. ⚡ 完全異步支援¶
💡 新文章:Why is Yazi Fast?
技術實現: - ✅ 所有 I/O 操作都是**異步**的 - ✅ CPU 任務分散到**多個執行緒** - ✅ 最大化資源利用
結果: - 🚀 極快的檔案操作 - 🔥 充分利用多核心 CPU - ⚡ 無阻塞的使用者體驗
2. 💪 強大的異步任務調度與管理¶
功能: - 📊 即時進度更新 - ❌ 任務取消 - 🎯 內部任務優先級分配
價值: - 長時間操作(大檔案複製)不阻塞 UI - 用戶可隨時取消操作 - 重要任務優先執行
3. 🖼️ 內建多種圖片協議支援¶
支援協議:
| 終端機 | 協議 | 支援 |
|---|---|---|
| kitty | Kitty unicode placeholders | ✅ 內建 |
| iTerm2 | Inline images protocol | ✅ 內建 |
| WezTerm | Inline images protocol | ✅ 內建 |
| Konsole | Kitty old protocol | ✅ 內建 |
| foot | Sixel graphics format | ✅ 內建 |
| Ghostty | Kitty unicode placeholders | ✅ 內建 |
| Windows Terminal | Sixel graphics format | ✅ 內建 |
| st (Sixel patch) | Sixel graphics format | ✅ 內建 |
| Warp | Inline images protocol | ✅ 內建 |
| Tabby | Inline images protocol | ✅ 內建 |
| VSCode | Inline images protocol | ✅ 內建 |
| Black Box | Sixel graphics format | ✅ 內建 |
| Bobcat | Inline images protocol | ✅ 內建 |
| X11 / Wayland | Window system protocol | ☑️ 需要 Überzug++ |
| Fallback | ASCII art (Unicode block) | ☑️ 需要 Chafa |
覆蓋範圍: - ✅ 幾乎所有現代終端機 - ✅ 多種協議自動檢測 - ✅ 降級機制(ASCII art)
整合: - Überzug++ - Chafa (>= 1.16.0)
4. 🌟 內建代碼高亮與圖片解碼¶
功能: - 📝 代碼高亮(語法著色) - 🖼️ 圖片解碼(多種格式)
優化: - ⚡ 預載機制(Pre-loading) - 🚀 大幅加速圖片與普通檔案載入
體驗: - 即時預覽代碼 - 快速瀏覽圖片 - 無需等待外部工具
5. 🔌 並發插件系統¶
三種插件類型:
A. UI 插件¶
- 重寫大部分 UI
- 自訂外觀與佈局
B. 功能插件¶
- 添加新功能
- 擴展核心能力
C. 自訂組件¶
- Previewer(預覽器)
- Preloader(預載器)
- Spotter(偵測器)
- Fetcher(取得器)
技術: - 📜 只需要一些 Lua 程式碼 - ⚡ 並發執行 - 🔧 高度可擴展
6. ☁️ 虛擬檔案系統(VFS)¶
功能: - 🌐 遠端檔案管理 - 🔍 自訂搜尋引擎
應用場景: - SSH/SFTP 遠端檔案 - 雲端儲存整合 - 自訂資料來源
7. 📡 資料分發服務(DDS)¶
架構: - 🏗️ 客戶端-伺服器架構 - ❌ 無需額外伺服器進程
整合: - 📜 Lua 為基礎的發布-訂閱模型 - 🔄 跨實例通信 - 💾 狀態持久化
價值: - 多個 Yazi 實例可互相通信 - 共享狀態與設定 - 協作式工作流
8. 📦 套件管理器¶
功能: - 🚀 一鍵安裝插件與主題 - 🔄 保持更新 - 📌 固定特定版本
體驗: - 類似 NPM/Cargo - 無需手動管理依賴 - 社群生態系統
9. 🧰 整合工具¶
整合的工具: - ripgrep - 超快搜尋 - fd - 現代化 find - fzf - 模糊搜尋 - zoxide - 智慧跳轉
價值: - ✅ 無縫整合 - ✅ 最佳實踐工具鏈 - ✅ 提升生產力
10. 💫 Vim 風格組件¶
組件: - ⌨️ Input(輸入) - 🎯 Pick(選擇) - ✅ Confirm(確認) - ❓ Which(提示) - 📢 Notify(通知)
特性: - 🚀 自動補全(cd 路徑) - ⌨️ Vim 鍵綁定 - 🎨 一致的 UI 體驗
11. 🏷️ 進階功能¶
檔案操作: - 📑 多標籤支援 - ✂️ 跨目錄選擇 - 📜 可滾動預覽(影片、PDF、壓縮檔、代碼、目錄等)
批次作業: - 🔄 批量重命名 - 📦 壓縮檔解壓 - 👁️ 視覺模式
整合: - 📁 檔案選擇器 - 🔀 Git 整合 - git.yazi - 💿 掛載管理 - mount.yazi
12. 🎨 使用者體驗¶
介面: - 🎨 主題系統 - 🖱️ 滑鼠支援 - 🗑️ 垃圾桶(回收站) - 📐 自訂佈局
終端支援: - ⌨️ CSI u(鍵盤協議) - 📋 OSC 52(剪貼板整合)
📊 專案狀態¶
當前階段¶
公開測試版,可作為日常驅動使用
注意: - ⚠️ Yazi 目前正在積極開發中 - ⚠️ 預期會有破壞性變更 - ✅ 但已足夠穩定供日常使用
📚 資源¶
官方文檔¶
- 安裝指南: https://yazi-rs.github.io/docs/installation
- 功能介紹: https://yazi-rs.github.io/features
- 技術文章: Why is Yazi Fast?
社群¶
- Discord Server (英文為主): https://discord.gg/qfADduSdJu
- Telegram Group (中文為主): https://t.me/yazi_rs
🎯 技術深度分析¶
1. 為什麼 Yazi 這麼快?¶
A. 非阻塞異步 I/O¶
傳統同步 I/O:
- ❌ 大量等待時間 - ❌ CPU 閒置Yazi 異步 I/O:
- ✅ 並發操作 - ✅ 充分利用 I/O - ✅ CPU 持續工作B. 多執行緒 CPU 任務¶
任務分配: - 🖼️ 圖片解碼 → Thread 1 - 📝 語法高亮 → Thread 2 - 📊 檔案排序 → Thread 3 - 🎨 UI 渲染 → Main Thread
優勢: - ✅ 多核心充分利用 - ✅ 不阻塞 UI - ✅ 響應速度快
C. 預載機制¶
智慧預載: - 👁️ 預測用戶下一步操作 - 📥 提前載入可能需要的檔案 - 🖼️ 提前解碼圖片
結果: - ⚡ 即時響應 - 🚀 接近零延遲
2. 插件系統架構¶
Lua 為基礎¶
為什麼選 Lua? - ✅ 輕量級(嵌入式友好) - ✅ 快速(JIT 編譯) - ✅ 簡單(容易學習) - ✅ 安全(沙盒執行)
插件類型¶
1. UI 插件:
2. 功能插件:
3. 自訂組件:
並發執行¶
- 🔀 插件可並發運行
- 🚫 不阻塞主執行緒
- 🎯 自動任務調度
3. 虛擬檔案系統(VFS)¶
抽象層¶
優勢: - ✅ 統一介面 - ✅ 透明訪問 - ✅ 易於擴展
應用場景¶
1. 遠端檔案管理:
2. 雲端儲存:
3. 自訂來源:
4. 資料分發服務(DDS)¶
架構¶
發布-訂閱模型¶
發布:
訂閱:
應用場景¶
1. 狀態同步: - 多個 Yazi 實例同步選擇狀態 - 共享書籤 - 同步設定
2. 協作式工作流: - A 實例複製檔案 - B 實例即時看到變更
💡 關鍵洞察¶
1. Rust + Async = 性能與安全¶
Rust 優勢: - ✅ 記憶體安全(無 GC) - ✅ 並發安全(無資料競爭) - ✅ 零成本抽象 - ✅ 豐富的生態系統
Async I/O: - ✅ 高並發 - ✅ 低資源消耗 - ✅ 快速響應
結果: - 🚀 極快速度 - 🔒 可靠穩定 - 💪 資源高效
2. 插件生態系統的重要性¶
官方插件: - git.yazi - Git 整合 - mount.yazi - 掛載管理
社群插件: - 主題 - 預覽器 - 功能擴展
價值: - ✅ 核心保持輕量 - ✅ 功能無限擴展 - ✅ 社群驅動創新
3. 終端圖片預覽的複雜性¶
挑戰: - 🤔 終端機標準各異 - 🤔 協議不統一 - 🤔 相容性問題
Yazi 解決方案: - ✅ 支援多種協議 - ✅ 自動檢測最佳協議 - ✅ 降級機制(ASCII art)
覆蓋率: - 🎯 13+ 種終端機內建支援 - 🎯 X11/Wayland 支援(via Überzug++) - 🎯 Fallback(via Chafa)
4. 使用者體驗設計¶
Vim 風格: - ✅ 鍵盤優先 - ✅ 高效操作 - ✅ 學習曲線平緩(Vim 用戶)
現代化 UI: - ✅ 滑鼠支援 - ✅ 美觀主題 - ✅ 即時預覽
平衡: - ⌨️ 鍵盤用戶滿意 - 🖱️ 滑鼠用戶也能用 - 🎨 外觀不妥協
🔗 與其他檔案管理器比較¶
| 特性 | Yazi | ranger | lf | nnn |
|---|---|---|---|---|
| 語言 | Rust | Python | Go | C |
| 異步 I/O | ✅ | ❌ | ❌ | ❌ |
| 圖片預覽 | ✅ 13+ 協議 | ✅ 有限 | ⚠️ 基本 | ❌ |
| 插件系統 | ✅ Lua 並發 | ✅ Python | ⚠️ Shell | ❌ |
| 效能 | 🚀 極快 | ⚠️ 慢 | ✅ 快 | ✅ 快 |
| 虛擬 FS | ✅ | ❌ | ❌ | ❌ |
| 跨實例通信 | ✅ DDS | ❌ | ❌ | ❌ |
| 套件管理 | ✅ | ❌ | ❌ | ❌ |
結論: - Yazi 是**功能最全面**的現代終端檔案管理器 - 效能與功能兼具
🚀 快速開始¶
安裝¶
# Arch Linux
sudo pacman -S yazi
# macOS
brew install yazi
# Cargo (跨平台)
cargo install --locked yazi-fm
# Nix
nix-shell -p yazi
基本使用¶
鍵盤快捷鍵(預設)¶
j/k- 上下移動h/l- 進入/離開目錄space- 選擇檔案y/x/p- 複製/剪下/貼上d- 刪除(移至垃圾桶)r- 重命名/- 搜尋q- 退出
🔖 標籤¶
#Yazi #Rust #終端機 #檔案管理器 #非同步IO #TUI #開源 #Vim風格 #插件系統 #虛擬檔案系統
📝 總結¶
Yazi 是什麼? - 🦆 用 Rust 編寫的超快速終端檔案管理器 - ⚡ 基於非阻塞異步 I/O - 🔌 強大的 Lua 插件系統 - 🖼️ 完善的圖片預覽支援
核心優勢: 1. ⚡ 極快速度:異步 I/O + 多執行緒 2. 🔧 高度可擴展:插件 + VFS + DDS 3. 🎨 優秀體驗:Vim 風格 + 現代 UI 4. 🌐 豐富生態:社群插件 + 主題
適合誰? - ⌨️ 終端機愛好者 - 🚀 追求效能的使用者 - 🔧 需要自訂工作流的開發者 - 🖼️ 需要圖片預覽的使用者
結論:
Yazi 是**下一代終端檔案管理器**,結合了 Rust 的效能、現代的架構設計與優秀的使用者體驗。
GitHub Stars: ⭐ 33.3K - 廣受社群認可!
最後更新: 2026-02-28
整理者: 多多
🔗 相關資源¶
- GitHub: sxyazi/yazi
- 官網: yazi-rs.github.io
- Discord: discord.gg/qfADduSdJu
- Telegram: t.me/yazi_rs