Windows 自带资源管理器用了这么多年,槽点攒了一肚子。界面基本还停留在上个时代的审美,标签页直到 Win11 才姗姗来迟,复制大文件没有队列,零碎文件一多整个窗口卡到让人怀疑人生。每天在电脑前工作的人,其实都需要一个真正跨平台、颜值能打、用起来顺手的文件管理器,把这摊子事一次性解决。今天要聊的主角是 Yazi,一个在终端里运行的跨平台文件管理器。它最神奇的地方在于——一个终端程序,能把文件预览、批量操作、快速跳转做得比图形界面还顺手,而且 Windows、macOS、Linux 通吃,我已经把它当主力文件管理器用了半年多,回不去了。
如果你也是那种每天要跟成百上千个文件打交道的人,受够了 Windows 自带文件管理器的卡顿和啰嗦,又不想在各大图形文件管理器之间反复横跳换工具,那这篇文章应该能帮你打开新世界的大门。下面我会从"为什么非要换"讲起,把方案选型、Yazi 的核心原理、Windows 安装配置、常用操作到踩坑记录一次说清楚。
1. 为什么非要换掉Windows自带的文件管理器
1.1 默认资源管理器的几个实际痛点
先说最直观的界面。Windows 资源管理器的功能区设计信息密度极低,一排大图标占了三分之一宽度,真正有用的操作却藏得很深。右键菜单更是一言难尽,安装软件越多,菜单越长,而且 Windows 11 那套"显示更多选项"折叠逻辑,等于把一个高频入口活生生变成了高频二次点击。
其次是性能。目录里文件一多,缩略图生成、排序、滚动都容易出问题。尤其是从 NAS 或移动硬盘打开大目录,资源管理器经常会卡在那儿转圈,看起来像系统死机。复制大文件时弹一个简陋的进度框,没有队列概念,你只能干等着;中途想取消,取消动作本身都能卡住。
再就是交互细节。想在两个目录里来回对比文件,得开两个窗口然后手动并排;复制文件冲突时,Windows 的处理方式永远是"是/否/全部",根本没有"保留两者"这种符合直觉的选项;路径栏复制路径还要右键找半天。这些细碎的摩擦一点点消耗耐心,累积到一定程度就值得换了。
1.2 市面上替代品我都试过什么
为了找到替代方案,我把主流跨平台和 Windows 独享的文件管理器基本都折腾了一遍。
| 名称 | 界面形态 | 跨平台 | 上手难度 | 我的评价 |
|---|---|---|---|---|
| Files | 图形 / Win11 风格 | 仅 Windows | 低 | 颜值确实高,但多标签稳定性和性能一般 |
| Explorer++ | 图形 / 经典双窗格 | 仅 Windows | 低 | 轻量便携,可惜更新停滞很久 |
| Double Commander | 图形 / 双栏 | Win / macOS / Linux | 中 | 功能非常全面,界面偏老派 |
| One Commander | 图形 / 双栏 | 仅 Windows | 中 | 功能多,但高级功能要付费 |
| Directory Opus | 图形 / 全能 | 仅 Windows | 高 | 最强图形方案之一,价格贵、学习成本高 |
| Yazi | 终端 TUI | Win / macOS / Linux | 中 | 键盘流终局方案,本文主角 |
如果你追求"长得像现代 App 的图形界面",Files 和 One Commander 都不错;如果你想要双栏总览,Double Commander 性价比高。但我个人折腾下来发现,图形类文件管理器始终绕不开一个问题:它们还是在用鼠标点来点去,本质上没有改变操作模式。真正让我停下来不再折腾的,是 Yazi——它把文件管理的操作逻辑整个从"用眼睛找图标"变成了"用键盘直接指挥",效率提升是肉眼可见的。
2. 为什么是终端文件管理器,以及Yazi凭什么好用
2.1 终端里的文件管理不是倒退
很多人一听"终端文件管理器",第一反应是"这不是倒退吗,我明明能用鼠标为什么要用键盘"。我一开始也是这个想法,直到真正用起来才明白,终端恰恰是文件管理器最好的舞台。
终端渲染的是字符和固定宽度的色块,界面刷新极快,不存在 GUI 那种反复重绘的卡顿。现代终端模拟器(比如 Windows Terminal、WezTerm、Alacritty)都能显示内嵌图片,也就是说你在终端里一样可以预览图片、看 PDF 缩略图、看视频封面,视觉上并不比图形界面差多少。更重要的是,终端意味着整套操作逻辑可以完全脱离鼠标:光标一上一下是移动,按一下空格选择目标,按回车打开,按 v 复制、按 x 剪切、按 p 粘贴,全都是肌肉记忆,根本不用眼睛去找按钮。
还有一个容易被忽略的点:终端文件管理器天然跨平台。你在这台 Windows 机器上熟悉的操作,在 Linux 服务器、WSL、macOS 上完全一致。对于平时要同时维护几台机器的人来说,一套操作逻辑通用,节省的记忆成本非常可观。
2.2 Yazi 的核心设计:异步 I/O 与预览体系
Yazi 是 Rust 写的,底层基于 tokio 异步运行时。这个设计直接解决了传统文件管理器"一卡全卡"的问题。我打开一个包含几万个图片文件的大目录,目录加载和文件预览是两个独立任务,加载过程不会阻塞界面,你可以继续上下移动、选文件、发命令,等目录读完了自然就渲染出来了。复制移动这类耗时操作会进入 Yazi 内置的任务队列,后台执行,你该干嘛干嘛,这在图形文件管理器里几乎是做不到的。
再就是它的预览体系。Yazi 默认就能直接预览文本、代码、压缩包内容、图片、PDF、视频帧,依赖的后端很小。预览功能不是单独开一个窗口,而是直接在右侧面板里实时渲染,你光标移到哪个文件,右侧就预览哪个文件。对于找资源、审代码、整理素材这类场景,这个体验我认为是图形管理器都没做好的。
2.3 跨平台到底能跨到哪里
Yazi 官方支持 Windows、macOS、Linux,以及各类 BSD 系统。配置目录和配置格式在各平台上是完全一致的,这意味着你可以把整套配置放进 dotfiles 仓库,用 Git 在各个机器之间同步。在 Windows 上用一套键位,到了 Linux 服务器上还是这套键位,不需要重新学习。
需要注意的是,不同平台上默认的"打开方式"路径不同,比如 Windows 上默认用 notepad 或资源管理器打开,Linux 上默认用 xdg-open。这块我们可以通过 opener 配置分别处理,我后面会详细讲怎么配。
3. Windows 下快速安装与第一启动
3.1 安装方式对比
Windows 装 Yazi 非常简单,我列一下常见方式:
| 方式 | 命令 | 适合场景 |
|---|---|---|
| winget | winget install Yazi.Yazi | 系统自带,推荐 |
| scoop | scoop install yazi | 已有 scoop 的用户 |
| choco | choco install yazi | 已有 choco 的用户 |
| 手动安装 | GitHub Releases 下载压缩包 | 需要特定版本 |
我最推荐 winget,因为 Win10/Win11 自带,装完自动加入 PATH,开个新终端窗口直接就能用。装完先验证一下:
yazi --version能输出版本号就说明安装成功了。这里有一个小细节:装完之后已经打开的终端窗口不会立刻识别新命令,需要新开一个终端窗口,或者执行refreshenv(如果装了 chocolatey 的话)。
如果你人在中国网络环境下,GitHub Releases 的下载速度可能不理想,这种情况我更建议用 winget 或 scoop,它们走的通常是镜像或者 CDN,速度相对稳定。当然国内镜像源也很多,大家可以根据实际网络情况选择。
3.2 把Yazi接入Windows Terminal和PowerShell
Yazi 是终端程序,所以我强烈建议你先用上 Windows Terminal,而不是老旧的 conhost。Windows Terminal 支持真彩色、内嵌图片、Unicode 图标字体,这些功能直接决定 Yazi 的显示效果。
字体方面,我推荐给 Windows Terminal 配上 Nerd Font 字体,比如 JetBrainsMono Nerd Font 或 CascadiaCode Nerd Font。Yazi 的文件图标和文件夹图标依赖这些字体,不装的话界面里会显示一堆方块或问号,非常影响观感。
接着在 PowerShell 的 profile 里加一个快捷命令。运行:
notepad $PROFILE如果提示文件不存在,先执行New-Item -ItemType File -Path $PROFILE -Force创建。然后在文件里追加:
function yy { yazi } Set-Alias -Name yz -Value yazi保存后重开 PowerShell,直接输入yy或yz就能启动 Yazi。这个方法比每次敲yazi少打几个字,而且命令短了更容易形成肌肉记忆。
3.3 第一次启动会遇到的小事
首次运行 Yazi,它会在%APPDATA%\yazi\config下生成默认配置目录,里面一般没有现成的配置文件,只有 flavors 之类的子目录。不要慌,默认行为是可以直接用的,只是有些默认键位和预览功能需要你后续再调。
第一次看到界面时,你可能会觉得"就这?只有一个目录列表"。别急着下结论,先按一下方向键上下移动,再按回车进目录,按Tab进入右侧预览面板。等你体会到光标移动和预览实时联动的感觉,大概就能明白我在说什么了。
如果界面里文件前面的图标显示成方块,说明字体没配对。去 Windows Terminal 的设置里把字体改成一个 Nerd Font,重开一下即可。这一步建议在任何深度配置之前做,因为图标问题是第一眼就能感受到的体验。
4. 核心配置:三份文件把Yazi调成顺手的样子
Yazi 的配置在 Windows 上位于%APPDATA%\yazi\config,里面主要有三个文件:yazi.toml(管理器行为)、keymap.toml(键位映射)、theme.toml(主题配色)。这三个文件没有创建时,Yazi 会用内置默认值,创建后会自动合并覆盖。下面我按重要程度讲一遍。
4.1 yazi.toml:管理器行为和打开规则
yazi.toml是最核心的配置,里面管三件事:管理器布局、文件排序与显示、opener 打开方式。
先说显示和排序。我个人的配置是:
[manager] sort_by = "natural" show_hidden = true linemode = "size" ratio = [1, 4, 3]解释一下:sort_by = "natural"让文件名按自然顺序排序,包含数字的文件名不会出现 file2 排在 file10 后面的情况;show_hidden = true会直接显示隐藏文件,如果你不想看到一堆点开头的配置文件,可以改成 false;linemode = "size"让文件列表右侧显示文件大小;ratio = [1, 4, 3]是左中右三个面板的宽度比例,默认的中列占比较小,我调大了让它显示更多文件信息。
然后是 opener,也就是"按回车用什么程序打开文件"。Windows 上的默认 opener 一般够了,但我喜欢把代码文件直接用编辑器打开。配置是这样的:
[opener] edit = [ { run = 'code "$@"', desc = "打开 VS Code" }, ] arc = [ { run = 'explorer "$@"', desc = "资源管理器打开" }, ] [open] rules = [ { name = "*.md", use = "edit" }, { name = "*.txt", use = "edit" }, { name = "*.js", use = "edit" }, { name = "*.ts", use = "edit" }, { name = "*.py", use = "edit" }, { name = "*.json", use = "edit" }, { name = "*.toml", use = "edit" }, { name = "*.zip", use = "arc" }, { name = "*.tar", use = "arc" }, { name = "*.rar", use = "arc" }, { name = "*.7z", use = "arc" }, ]这样我在 Yazi 里浏览项目文件时,按回车直接就在 VS Code 里打开对应文件了,不用先打开编辑器再导航目录。$@在 Yazi 里表示把选中的全部文件路径传给命令,单个文件用$1也行。如果文件关联规则匹配不到,Yazi 会走系统默认的打开方式,Windows 上就是调用资源管理器的关联程序。
4.2 keymap.toml:键位映射
keymap.toml管的是快捷键。Yazi 的默认键位已经非常合理,我建议新手先直接适应默认键位,用几天再根据痛点改。但有几个地方我确实改过,比如我个人不习惯用dd删除,而是直接按d删除当前文件,可以在keymap.toml里这样加:
[manager] prepend_keymap = [ { on = "d", run = "delete", desc = "删除选中文件" }, ]prepend_keymap表示把键位绑定加到原有映射之前,会覆盖同名键位。还有一个常用操作是刷新目录,默认可能是Ctrl+r,如果你觉得不顺手,可以改成:
prepend_keymap = [ { on = "R", run = "refresh", desc = "刷新目录" }, ]键位映射是整个 Yazi 配置里最值得花时间的地方。因为默认键位不一定符合所有人的手指习惯,比如有人习惯 j/k 上下走,有人习惯方向键,有人希望Space是选中、回车的下一级目录,还有人希望Enter既能打开又能进入目录。等你明确了这些差异,再慢慢调整,效率提升是立竿见影的。
4.3 theme.toml 与主题定制
Yazi 的颜值一大半在主题上。默认的深色主题已经很干净,但你可以去 Yazi 的官方主题仓库找一个更喜欢的 flavor 主题,比如catppuccin、dracula、kanagawa、tokyonight,这些都是社区维护的漂亮配色。
安装步骤很简单:把主题目录放到%APPDATA%\yazi\config\flavors\下,然后在theme.toml里指定:
[flavor] dark = "catppuccin-mocha"保存后重开 Yazi 就生效。注意 Yazi 有 light/dark 两种模式,如果你平时用 Windows Terminal 的浅色主题,可以同时配一个 light 主题。我个人的建议是终端保持深色,这样长时间看内容眼睛会舒服很多。
另外,Yazi 的边框、图标、文件类型颜色都可以在theme.toml里精细调整。如果你对默认图标不满意,可以逐项覆盖。不过这些属于锦上添花,建议新手先别陷进去,把核心操作流程跑通,再慢慢调外形。
4.4 配置热重载与版本注意
Yazi 的配置文件大部分在重开程序后就能生效,不需要重启终端或者重启电脑。如果你正在 Yazi 里改了配置,可以退出再进入,整个流程不到一秒钟。
需要特别注意的是 Yazi 的版本升级。从老版本升级后,配置格式偶尔会有不兼容的变化,尤其是yazi.toml里的字段名字和结构。我建议在升级后先查看官方文档的 changelog,再决定要不要保留旧配置。如果你在终端里启动 Yazi 时看到类似无效配置的红色报错,大概率是配置格式不匹配了,可以备份后直接删除旧配置文件,让 Yazi 重新生成默认配置,再逐步迁移自定义项。
5. 实操:用Yazi完成一天的文件管理任务
5.1 高频快捷键速查表
在讲场景之前,先把最常用的快捷键列出来。这是我在 0.3.x 默认配置下日常用得最频繁的键位,新手可以先背这一张表就足够撑起基础操作:
| 按键 | 功能 | 备注 |
|---|---|---|
j/k | 向下 / 向上移动光标 | 等价于方向键上下的效果 |
h/l | 返回上级 / 进入目录 | l也可以打开文件 |
Enter | 打开文件 / 进入目录 | 会走 opener 规则 |
Backspace | 返回上级目录 | 也返回历史记录 |
Space | 选中 / 取消选中 | 支持多选 |
v | 复制选中文件 | 进入剪贴板等待粘贴 |
x | 剪切选中文件 | 进入剪贴板等待粘贴 |
p | 粘贴剪贴板中的文件 | 包含之前复制/剪切的内容 |
d | 删除文件到回收站 | 默认配置如此 |
r | 重命名当前文件 | 进入重命名编辑状态 |
a | 新建文件 | 会进入编辑状态 |
m | 新建目录 | 新版默认键位 |
f | 过滤器,快速过滤文件 | 按名字即时过滤 |
/ | 查找文件 | 输入关键字回车跳转 |
Tab | 切换面板焦点 | 进入预览面板后可操作 |
: | 命令模式 | 类似 vim 的命令行 |
G/g | 跳到列表底部 / 顶部 | vim 风格 |
Ctrl+A | 全选 | |
Ctrl+r | 刷新目录 | 网络目录或变更后常用 |
这份速查表不是让你死记硬背,而是先记住几个最常用的:j/k移动、Enter进入、Backspace返回、Space选择、p粘贴、d删除、f过滤。剩下的等你用的时候自然会发现"我想要一个什么操作",然后再查键位表或改键位映射。
5.2 三个真实场景:批量移动、跨盘符操作、快速预览
场景一:批量移动。比如我有几十个散落在不同目录的图片要归拢到一个文件夹。传统资源管理器的做法是开两个窗口,拉滚动条选中,然后鼠标拖拽。在 Yazi 里,我只需要把光标移到第一个文件上,按Space选中,继续移动光标,继续按Space选中,全部选完后按v复制(或x剪切),然后跳转到目标目录,按p粘贴。整个过程手不用离开键盘,几十个文件一两分钟就搞定了。
场景二:跨盘符操作。要把 C 盘桌面的文件夹移到 D 盘,或者把 D 盘的资料复制到移动硬盘 E。在 Yazi 里可以先用:cd D:\之类的命令直接切换盘符,也可以用h一层层返回,直到出现盘符列表,再进入目标盘。跨盘符的复制和移动同样走v/x/p这一套,挨个粘贴即可。需要注意跨盘符粘贴的时候,如果源文件还在原位置,这里实际发生的是复制还是移动取决于你按的是v还是x。
场景三:快速预览。找一个目录,光标上下移动,右侧预览窗格会实时刷新。看图片能直接看到内容,看代码能看到语法高亮,看压缩包能直接看到里面有哪些文件。最舒服的是找素材:我有一整个图标库目录,超过一千个 PNG 文件,用 Yazi 上下扫一遍就能快速挑出目标图标,这在资源管理器里是根本不敢想的。
5.3 与编辑器、Git、压缩包联动
Yazi 最大的扩展性在于 open 规则和插件体系。上面已经讲了怎么把*.md、*.js这类文件直接交给 VS Code 打开。如果你用 Neovim,可以把edit这个 opener 换成nvim;如果你是 JetBrains 系用户,可以配置对应的命令行打开器。
Git 用户还可以给 Yazi 装插件,比如git.yazi,它能在文件列表里直接显示 Git 状态,哪些文件新增、哪些改动、哪些冲突,一目了然。这功能对开发者在文件管理器里快速定位工作区状态非常实用。
压缩包处理也是我高频使用的功能。默认 Yazi 可以直接进入 zip 包内部浏览,不用解压就能看到文件和目录结构。如果你只是临时确认一下包内容,或者想从包里拷出一个文件,直接在里面选中、复制、退出到目标目录、粘贴就行。注意,直接"进入压缩包"是只读浏览模式,不能在压缩包里做增删改,这跟主流压缩软件的行为是一致的。
6. 常见问题与排查技巧实录
6.1 问题速查表
我把实际使用中遇到的高频问题整理一下,按"现象-原因-解决"的方式列出来,方便直接踩坑对照。
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 文件图标显示为方块或问号 | 终端字体不是 Nerd Font | 在终端里切换成 Nerd Font 如 JetBrainsMono Nerd Font |
| 图片预览不显示 | 终端不支持内嵌图片协议 / 旧版 Windows Terminal | 升级 Windows Terminal 到最新版,或换 WezTerm |
| 中文文件名显示乱码 | 终端编码或字体问题 | 终端设置 UTF-8,字体用中文字体 fallback |
| 打开文件用的不是想要的程序 | opener 规则没匹配上 | 在yazi.toml里给对应扩展名指定 opener |
| 配置修改后没生效 | 没重开 Yazi | 退出 Yazi 重新进入 |
| 删除文件没有进回收站 | Windows 下默认删除进回收站,但某些版本配置不同 | 检查yazi.toml的trash选项 |
| 在 WSL 里预览 Windows 文件乱码 | 路径分隔符/权限问题 | 用/mnt/c/...路径访问,且提前确认目录有读取权限 |
| 启动 Yazi 报错提示配置无效 | 版本升级后配置格式不兼容 | 备份配置后删除,让 Yazi 重新生成再迁移 |
6.2 我在Windows上踩过的三个坑
第一个坑是字体没配对就直接吐槽图标难看。我第一次用 Yazi 时,图标全是乱码方块,一度觉得这软件徒有虚名。后来查了文档才知道没有 Nerd Font 的锅。所以我在前面反复强调,先装好字体再开始体验,这一步能减少 80% 的初体验挫败感。
第二个坑是跨平台同步配置时写死了 Windows 路径。我最初把 opener 里写的是run = 'C:\Users\xxx\AppData\Local\Programs\Microsoft VS Code\Code.exe "$@"',结果这套配置同步到 Linux 上根本不能用。后来我改成优先用命令名而不是绝对路径,比如code、nvim、explorer,让系统从 PATH 里找。这样配置跨平台就干净多了。如果你必须在不同平台使用不同默认程序,建议在规则里按扩展名拆分,而不是指望一份配置全平台通用。
第三个坑是旧版本配置升级后直接崩。有一次我升级 Yazi 后,启动时红字报错,分析半天发现是当时yazi.toml里一个字段名变了。从那以后我养成了一个习惯:升级前看一眼 changelog,升级后如果报错,直接改名旧配置目录,先跑默认配置确认新版特性,再一点点迁移自定义内容。这个方法能让你快速区分"是配置坏了"还是"软件环境坏了"。
7. 一点关于终端工作流的额外心得
现在我的日常基本是这样的:打开 Windows Terminal,输入yy进入 Yazi,所有文件操作都在里面完成,需要编辑文件就按回车唤起编辑器,需要执行命令就按;弹出 shell,需要拷贝路径就按Ctrl+y之类的快捷键直接拿路径。文件管理从"不得不处理的任务"变成了"不打断思路的流程",这是我在图形文件管理器里从来没体验过的流畅感。
最后分享一个小技巧:如果你已经把终端里的大部分工作流都迁移到 Yazi,建议把启动目录固定在你最常访问的工作目录,比如yy这个函数改成:
function yy { yazi "$HOME\Documents\work" }这样每次打开 Yazi 就直接进入工作区,连导航都省了。先明确自己最常待的目录在哪里,然后把 Yazi 作为一个"常驻窗口"来使用,效率提升会非常明显。第一次用终端文件管理器确实会有一点别扭,但撑过前两小时,大概率就回不去了。