Yazi 上手:把终端文件管理做成一个键盘驾驶舱

作者:Administrator 发布时间: 2026-05-08 阅读量:2 评论数:0

终端文件管理器这类工具,很容易被写成“ls 和 cd 的升级版”。这说法没错,但有点浅。

Yazi 真正值得看的地方,不只是它能在终端里预览图片、PDF、压缩包和代码,而是它把“文件浏览”这件事重新放回了键盘工作流里。对开发者、运维、远程服务器用户来说,文件管理不是打开一个 Finder 或资源管理器那么简单:你经常在 SSH 里,旁边开着编辑器、测试日志、Git diff、构建产物,还要不停找文件、看内容、移动目录、批量改名。

这时候,传统图形文件管理器太重,纯命令又太碎。Yazi 卡在中间:它还是终端工具,但给你分栏、预览、异步任务、插件和主题。换句话说,它不是要替代 shell,而是给 shell 补一个更像“驾驶舱”的文件层。

Yazi 是什么:不是炫技,是终端工作流补位

Yazi 是一个用 Rust 写的终端文件管理器,当前仓库版本已经到 26.5.6,项目仍处于 public beta,但 README 里已经明确写了:可以作为 daily driver 使用,只是仍在快速开发,可能有破坏性变更。

它的基本形态很直观:

TEXT
左侧:父目录或目录结构 中间:当前目录文件列表 右侧:文件内容、图片、视频缩略图、PDF、压缩包或代码预览 底部:状态、任务进度、快捷键提示

你可以把它理解成“终端里的 Finder”,但这个比喻还不够准确。因为 Yazi 的关键不是漂亮,而是它把文件选择、预览、复制移动、批量重命名、目录跳转、插件扩展都保留在键盘流里。你不用退出终端,也不用在鼠标和命令之间来回切。

官方列出的核心能力包括:异步 I/O、任务调度、图片协议支持、代码高亮、Lua 插件、虚拟文件系统、包管理器、ripgrep/fd/fzf/zoxide 集成、多标签、跨目录选择、批量重命名、压缩包解包、Git 集成、挂载管理、主题系统、鼠标支持和回收站。

这不是“多几个快捷键”的工具,底层已经按一个可扩展 TUI 平台在做了。

安装:先选包管理器,别一上来源码编译

大多数人没必要从源码开始。Yazi 已经进入多个系统包管理器,优先用系统里最顺手的方式装。

macOS 可以用 Homebrew:

BASH
brew install yazi

Arch Linux:

BASH
sudo pacman -S yazi

Nix:

BASH
nix profile install nixpkgs#yazi

如果你用的是其他 Linux 发行版,可以先查发行版软件源;没有合适版本,再从 GitHub Release 下载预编译包,或者用 Cargo 安装。

源码构建适合想参与开发或需要最新提交的人:

BASH
git clone https://github.com/sxyazi/yazi.git cd yazi cargo build --release

注意,当前 workspace 里写的 Rust 版本要求是 1.95.0。如果本机 Rust 太旧,先升级工具链:

BASH
rustup update stable

装完后跑:

BASH
yazi

第一次启动先别急着改配置。先用默认快捷键跑一圈,确认终端显示、按键、预览和退出都正常。

先学 12 个按键,够用一整天

Yazi 的键位对 Vim 用户比较友好。刚开始不需要背完整表,先记下面这些:

TEXT
j / k 上下移动 h / l 返回上级目录 / 进入目录或打开文件 Enter 打开文件 Space 选中或取消选中文件 v 进入可视选择 Esc 取消选择或返回普通状态 y 复制选中文件 x 剪切选中文件 p 粘贴 d 删除或丢进回收站,取决于配置 r 重命名 q 退出

如果你已经习惯 Vim,这套操作几分钟就能上手。真正影响效率的不是快捷键数量,而是“眼睛不离开当前目录”。你上下移动时,右侧预览会跟着变;遇到代码、Markdown、图片、压缩包,不用先打开文件,再关掉,再切回目录。

开发目录里尤其明显。比如你在一个前端项目里找素材、改页面、看构建产物,Yazi 可以让你快速扫一遍:

TEXT
src/components/ 看组件文件 public/ 看图片和静态资源 dist/ 看构建输出 README.md 直接预览 Markdown package.json 右侧看脚本和依赖

它不是替代编辑器,而是让你在打开编辑器之前先看清楚目录。

图片预览:好用,但要先确认终端协议

Yazi 最吸引人的功能之一,是终端图片预览。官方 README 里列了很多终端协议支持:Kitty、iTerm2、WezTerm、Konsole、foot、Ghostty、Windows Terminal、Warp、Tabby、VSCode、Rio、Black Box 等都有内置或协议支持;X11/Wayland 可以通过 Überzug++,兜底还可以通过 Chafa 做字符画预览。

这说明一个问题:图片预览不是 Yazi 单方面决定的,它依赖终端是否支持对应图片协议。

如果你打开 Yazi 后图片不显示,先按这个顺序查:

TEXT
1. 当前终端是否支持图片协议 2. 是否在 tmux / screen 里,协议是否被透传 3. 是否需要安装 chafa 或 ueberzugpp 4. 远程 SSH 场景下,本地终端和远端环境是否都满足条件 5. 图片是否太大,是否被终端或主题缩放影响

macOS 上 iTerm2、WezTerm、Warp 通常体验比较稳。Linux 桌面端 Kitty、WezTerm、foot、Ghostty 值得优先试。Windows Terminal 新版本也支持 Sixel,但系统和终端版本要对上。

如果你只是服务器 SSH 管理,不一定非要追求“真图片”。能预览文本、代码、压缩包、目录、PDF 首页,已经足够把日常文件操作效率拉上去了。

Shell wrapper:退出后回到最后目录

终端文件管理器有一个经典痛点:你在里面一路进到很深的目录,退出后 shell 还停在原来的位置。Yazi 也提供 shell wrapper 思路,让你退出时回到最后浏览的目录。

一个常见写法是给 shell 加函数,例如 zsh/bash:

BASH
function yy() { local tmp="$(mktemp -t yazi-cwd.XXXXXX)" yazi "$@" --cwd-file="$tmp" if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then cd -- "$cwd" fi rm -f -- "$tmp" }

保存到 ~/.zshrc~/.bashrc 后重新加载:

BASH
source ~/.zshrc

以后用:

BASH
yy

这样你在 Yazi 里浏览到目标目录后退出,当前 shell 也会跟过去。这一步很实用,建议早配。否则 Yazi 只是在“看文件”,配上 wrapper 后才真正变成“导航工具”。

依赖工具:fd、rg、fzf、zoxide 不是装饰

Yazi 可以和 ripgrep、fd、fzf、zoxide 集成。别把这些当可有可无的插件,它们决定了 Yazi 能不能从“文件列表”变成“项目导航”。

建议一起装:

BASH
brew install fd ripgrep fzf zoxide

Linux 上按发行版包管理器替换即可,比如 Arch:

BASH
sudo pacman -S fd ripgrep fzf zoxide

这几样分别负责:

TEXT
fd 更快的文件查找 ripgrep 更快的全文搜索 fzf 模糊选择 zoxide 记住常去目录,快速跳转

项目目录越大,这些工具越有用。你不需要在脑子里记路径,也不需要一层层 cd。经常访问的目录会被 zoxide 记住,搜索文件和内容时也能少等很多。

批量重命名:比写 for 循环安全一点

批量重命名是命令行里最容易手滑的操作之一。写 for 循环、renamemv 都能做,但可视反馈弱,错了就一片乱。

Yazi 的优势是它把批量操作放进一个可预览的界面里。你可以先选中文件,再进入重命名逻辑,按类似编辑文本的方式调整文件名。对这些场景尤其顺手:

TEXT
截图批量加日期前缀 下载文件统一清理空格和括号 素材文件按顺序编号 把 .jpeg 统一改成 .jpg 把中文临时文件名改成英文 slug

当然,批量改名前仍然要有底线:重要目录先备份,Git 仓库里先看 git status,生产服务器上不要对未知目录一把梭。

插件和主题:先少装,等工作流稳定后再扩展

Yazi 的插件系统是它后续能长大的关键。README 里提到,它支持 UI 插件、功能插件、自定义 previewer、preloader、spotter、fetcher,而且插件主要用 Lua 写。官方插件仓库里也有 Git integration、mount manager 等扩展。

但新手不建议一上来装一堆主题和插件。原因很简单:文件管理器是高频工具,稳定比花哨重要。先把默认体验用顺,再考虑这几类扩展:

TEXT
Git 状态显示:适合开发仓库 挂载管理:适合经常处理外部盘、远程盘 自定义 previewer:适合特殊文件格式 主题:适合长期驻留终端的人

真正值得折腾的是“预览能力”。如果你每天处理 Markdown、JSON、图片、PDF、压缩包、日志,就应该把这些格式的预览调稳。主题只是锦上添花。

在服务器上用:别把它当桌面文件管理器

Yazi 很适合 SSH 场景,但服务器上用它要克制。远程机器上最重要的是边界:哪些目录能动,哪些目录只能看,哪些操作必须回滚。

建议给服务器上的 Yazi 使用定几条规则:

TEXT
1. 不在 /etc、/var/lib、数据库目录里随手批量删除。 2. 用普通用户启动,必要时再 sudo 单条命令处理。 3. 对生产目录先看 Git、备份或快照状态。 4. 大文件复制移动先确认目标磁盘空间。 5. 远程 SSH 下图片预览不稳定很正常,不要为它改一堆系统配置。

如果你把服务器当 Agent 实验机、远程开发机或临时构建机,Yazi 会更有用。它能让你快速查看日志、产物、截图、下载文件和项目目录,不必每次 lscdless 来回跳。

顺手提一嘴,如果你最近正准备单独搞一台远程开发/Agent 实验机,可以把 Yazi、tmux、fzf、ripgrep、zoxide 这些终端工具一次配好。雨云这类轻量云服务器适合拿来做隔离环境:坏了重装,不影响主力电脑,也方便给 Agent 单独设权限和日志边界。

给远程终端工作流留一台独立机器
把 Yazi、tmux、ripgrep、zoxide 和 Agent 工具链放在隔离 VPS 上,文件管理、日志查看和实验环境都更清爽。
查看雨云服务器方案 →

一套够用的起步配置思路

Yazi 的配置文件通常放在用户配置目录下。你不必一开始就抄完整配置,先按“最少改动”来:

TEXT
~/.config/yazi/ yazi.toml 主配置 keymap.toml 快捷键 theme.toml 主题 init.lua Lua 初始化逻辑

起步建议只做三件事:

TEXT
1. 配好 shell wrapper,让 yy 退出后能 cd 到最后目录。 2. 安装 fd、ripgrep、fzf、zoxide,提升查找和跳转体验。 3. 确认当前终端的图片预览方式,不强求每台机器都一致。

等这三件事稳定后,再加 Git 插件、主题和自定义 previewer。

常见问题排查

图片不显示:

TEXT
先换 Kitty、WezTerm、iTerm2、Ghostty 这类支持较好的终端试一下;如果在 tmux 里,先退出 tmux 直接跑 yazi 对比。必要时安装 chafa 或 ueberzugpp。

退出后目录没变化:

TEXT
直接运行 yazi 不会改变父 shell 的 cwd。需要配置 shell wrapper,并用 yy 这类函数启动。

预览很慢:

TEXT
检查是否在网络盘、大目录或远程 SSH 上;减少超大文件预览,确认 fd、ripgrep 等依赖已安装。

按键和输入法冲突:

TEXT
先用默认 keymap,确认终端没有拦截快捷键;再逐步改 keymap.toml。

生产服务器不敢用:

TEXT
这是对的。先在普通用户目录练熟,再去生产机器;批量删除、移动和重命名都要先确认备份或 Git 状态。

最后说句实在的

Yazi 的价值不是让终端看起来像图形界面,而是让终端里最碎的那部分操作重新连贯起来。

lscdcpmvless 当然都能用,也足够可靠。但当你一天要在几十个目录之间跳、看图片和 Markdown、翻日志、找构建产物、批量整理文件时,纯命令会把注意力切得很碎。Yazi 把这些动作放进一个键盘优先的界面里,让你先看见文件,再决定怎么动它。

对终端重度用户来说,这不是花活。它更像一个基础设施小升级:不改变你的 shell,不替代你的编辑器,只把文件层补齐。

整明白这点,Yazi 就值得装。

评论