2026/05/08
Yazi 上手:把终端文件管理做成一个键盘驾驶舱
终端文件管理器这类工具,很容易被写成“ls 和 cd 的升级版”。这说法没错,但有点浅。 Yazi 更关键的地方,不只是它能在终端里预览图片、PDF、压缩包和代码,而是它把“文件浏览”这件事重新放回了键盘工作流里。对开发者、运维、远程服务器用户来说,文件管理不是打开一个 Finder 或资源管理器那么简单:你经常在
终端文件管理器这类工具,很容易被写成“ls 和 cd 的升级版”。这说法没错,但有点浅。
Yazi 更关键的地方,不只是它能在终端里预览图片、PDF、压缩包和代码,而是它把“文件浏览”这件事重新放回了键盘工作流里。对开发者、运维、远程服务器用户来说,文件管理不是打开一个 Finder 或资源管理器那么简单:你经常在 SSH 里,旁边开着编辑器、测试日志、Git diff、构建产物,还要不停找文件、看内容、移动目录、批量改名。
这时候,传统图形文件管理器太重,纯命令又太碎。Yazi 卡在中间:它还是终端工具,但给你分栏、预览、异步任务、插件和主题。换句话说,它不是要替代 shell,而是给 shell 补一个更像“驾驶舱”的文件层。
Yazi 是什么:不是炫技,是终端工作流补位
Yazi 是一个用 Rust 写的终端文件管理器,当前仓库版本已经到 26.5.6,项目仍处于 public beta,但 README 里已经明确写了:可以作为 daily driver 使用,只是仍在快速开发,可能有破坏性变更。
它的基本形态很直观:
左侧:父目录或目录结构
中间:当前目录文件列表
右侧:文件内容、图片、视频缩略图、PDF、压缩包或代码预览
底部:状态、任务进度、快捷键提示你可以把它理解成“终端里的 Finder”,但这个比喻还不够准确。因为 Yazi 的关键不是漂亮,而是它把文件选择、预览、复制移动、批量重命名、目录跳转、插件扩展都保留在键盘流里。你不用退出终端,也不用在鼠标和命令之间来回切。
官方列出的核心能力包括:异步 I/O、任务调度、图片协议支持、代码高亮、Lua 插件、虚拟文件系统、包管理器、ripgrep/fd/fzf/zoxide 集成、多标签、跨目录选择、批量重命名、压缩包解包、Git 集成、挂载管理、主题系统、鼠标支持和回收站。
这不是“多几个快捷键”的工具,底层已经按一个可扩展 TUI 平台在做了。
安装:先选包管理器,别一上来源码编译
大多数人没必要从源码开始。Yazi 已经进入多个系统包管理器,优先用系统里最顺手的方式装。
macOS 可以用 Homebrew:
brew install yaziArch Linux:
sudo pacman -S yaziNix:
nix profile install nixpkgs#yazi如果你用的是其他 Linux 发行版,可以先查发行版软件源;没有合适版本,再从 GitHub Release 下载预编译包,或者用 Cargo 安装。
源码构建适合想参与开发或需要最新提交的人:
git clone https://github.com/sxyazi/yazi.git
cd yazi
cargo build --release注意,当前 workspace 里写的 Rust 版本要求是 1.95.0。如果本机 Rust 太旧,先升级工具链:
rustup update stable装完后跑:
yazi第一次启动先别急着改配置。先用默认快捷键跑一圈,确认终端显示、按键、预览和退出都正常。
先学 12 个按键,够用一整天
Yazi 的键位对 Vim 用户比较友好。刚开始不需要背完整表,先记下面这些:
j / k 上下移动
h / l 返回上级目录 / 进入目录或打开文件
Enter 打开文件
Space 选中或取消选中文件
v 进入可视选择
Esc 取消选择或返回普通状态
y 复制选中文件
x 剪切选中文件
p 粘贴
d 删除或丢进回收站,取决于配置
r 重命名
q 退出如果你已经习惯 Vim,这套操作几分钟就能上手。真正影响效率的不是快捷键数量,而是“眼睛不离开当前目录”。你上下移动时,右侧预览会跟着变;遇到代码、Markdown、图片、压缩包,不用先打开文件,再关掉,再切回目录。
开发目录里尤其明显。比如你在一个前端项目里找素材、改页面、看构建产物,Yazi 可以让你快速扫一遍:
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 后图片不显示,先按这个顺序查:
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:
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 后重新加载:
source ~/.zshrc以后用:
yy这样你在 Yazi 里浏览到目标目录后退出,当前 shell 也会跟过去。这一步很实用,建议早配。否则 Yazi 只是在“看文件”,配上 wrapper 后才真正变成“导航工具”。
依赖工具:fd、rg、fzf、zoxide 不是装饰
Yazi 可以和 ripgrep、fd、fzf、zoxide 集成。别把这些当可有可无的插件,它们决定了 Yazi 能不能从“文件列表”变成“项目导航”。
建议一起装:
brew install fd ripgrep fzf zoxideLinux 上按发行版包管理器替换即可,比如 Arch:
sudo pacman -S fd ripgrep fzf zoxide这几样分别负责:
fd 更快的文件查找
ripgrep 更快的全文搜索
fzf 模糊选择
zoxide 记住常去目录,快速跳转项目目录越大,这些工具越有用。你不需要在脑子里记路径,也不需要一层层 cd。经常访问的目录会被 zoxide 记住,搜索文件和内容时也能少等很多。
批量重命名:比写 for 循环安全一点
批量重命名是命令行里最容易手滑的操作之一。写 for 循环、rename、mv 都能做,但可视反馈弱,错了就一片乱。
Yazi 的优势是它把批量操作放进一个可预览的界面里。你可以先选中文件,再进入重命名逻辑,按类似编辑文本的方式调整文件名。对这些场景尤其顺手:
截图批量加日期前缀
下载文件统一清理空格和括号
素材文件按顺序编号
把 .jpeg 统一改成 .jpg
把中文临时文件名改成英文 slug当然,批量改名前仍然要有底线:重要目录先备份,Git 仓库里先看 git status,生产服务器上不要对未知目录一把梭。
插件和主题:先少装,等工作流稳定后再扩展
Yazi 的插件系统是它后续能长大的关键。README 里提到,它支持 UI 插件、功能插件、自定义 previewer、preloader、spotter、fetcher,而且插件主要用 Lua 写。官方插件仓库里也有 Git integration、mount manager 等扩展。
但新手不建议一上来装一堆主题和插件。原因很简单:文件管理器是高频工具,稳定比花哨重要。先把默认体验用顺,再考虑这几类扩展:
Git 状态显示:适合开发仓库
挂载管理:适合经常处理外部盘、远程盘
自定义 previewer:适合特殊文件格式
主题:适合长期驻留终端的人更关键的是折腾的是“预览能力”。如果你每天处理 Markdown、JSON、图片、PDF、压缩包、日志,就应该把这些格式的预览调稳。主题只是锦上添花。
在服务器上用:别把它当桌面文件管理器
Yazi 很适合 SSH 场景,但服务器上用它要克制。远程机器上最重要的是边界:哪些目录能动,哪些目录只能看,哪些操作必须回滚。
建议给服务器上的 Yazi 使用定几条规则:
1. 不在 /etc、/var/lib、数据库目录里随手批量删除。
2. 用普通用户启动,必要时再 sudo 单条命令处理。
3. 对生产目录先看 Git、备份或快照状态。
4. 大文件复制移动先确认目标磁盘空间。
5. 远程 SSH 下图片预览不稳定很正常,不要为它改一堆系统配置。如果你把服务器当 Agent 实验机、远程开发机或临时构建机,Yazi 会更有用。它能让你快速查看日志、产物、截图、下载文件和项目目录,不必每次 ls、cd、less 来回跳。
顺手提一嘴,如果你最近正准备单独搞一台远程开发/Agent 实验机,可以把 Yazi、tmux、fzf、ripgrep、zoxide 这些终端工具一次配好。雨云这类轻量云服务器适合拿来做隔离环境:坏了重装,不影响主力电脑,也方便给 Agent 单独设权限和日志边界。
一套够用的起步配置思路
Yazi 的配置文件通常放在用户配置目录下。你不必一开始就抄完整配置,先按“最少改动”来:
~/.config/yazi/ yazi.toml 主配置 keymap.toml 快捷键 theme.toml 主题 init.lua Lua 初始化逻辑起步建议只做三件事:
1. 配好 shell wrapper,让 yy 退出后能 cd 到最后目录。
2. 安装 fd、ripgrep、fzf、zoxide,提升查找和跳转体验。
3. 确认当前终端的图片预览方式,不强求每台机器都一致。等这三件事稳定后,再加 Git 插件、主题和自定义 previewer。
常见问题排查
图片不显示:
先换 Kitty、WezTerm、iTerm2、Ghostty 这类支持较好的终端试一下;如果在 tmux 里,先退出 tmux 直接跑 yazi 对比。必要时安装 chafa 或 ueberzugpp。退出后目录没变化:
直接运行 yazi 不会改变父 shell 的 cwd。需要配置 shell wrapper,并用 yy 这类函数启动。预览很慢:
检查是否在网络盘、大目录或远程 SSH 上;减少超大文件预览,确认 fd、ripgrep 等依赖已安装。按键和输入法冲突:
先用默认 keymap,确认终端没有拦截快捷键;再逐步改 keymap.toml。生产服务器不敢用:
这是对的。先在普通用户目录练熟,再去生产机器;批量删除、移动和重命名都要先确认备份或 Git 状态。最后说句实在的
Yazi 的价值不是让终端看起来像图形界面,而是让终端里最碎的那部分操作重新连贯起来。
ls、cd、cp、mv、less 当然都能用,也足够可靠。但当你一天要在几十个目录之间跳、看图片和 Markdown、翻日志、找构建产物、批量整理文件时,纯命令会把注意力切得很碎。Yazi 把这些动作放进一个键盘优先的界面里,让你先看见文件,再决定怎么动它。
对终端重度用户来说,这不是花活。它更像一个基础设施小升级:不改变你的 shell,不替代你的编辑器,只把文件层补齐。
整明白这点,Yazi 就值得装。