跨平台终端文件管理器Yazi:Windows下高效文件管理实战
2026/9/24 18:29:41 网站建设 项目流程

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终端 TUIWin / 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 非常简单,我列一下常见方式:

方式命令适合场景
wingetwinget install Yazi.Yazi系统自带,推荐
scoopscoop install yazi已有 scoop 的用户
chocochoco 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,直接输入yyyz就能启动 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 主题,比如catppuccindraculakanagawatokyonight,这些都是社区维护的漂亮配色。

安装步骤很简单:把主题目录放到%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.tomltrash选项
在 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 上根本不能用。后来我改成优先用命令名而不是绝对路径,比如codenvimexplorer,让系统从 PATH 里找。这样配置跨平台就干净多了。如果你必须在不同平台使用不同默认程序,建议在规则里按扩展名拆分,而不是指望一份配置全平台通用。

第三个坑是旧版本配置升级后直接崩。有一次我升级 Yazi 后,启动时红字报错,分析半天发现是当时yazi.toml里一个字段名变了。从那以后我养成了一个习惯:升级前看一眼 changelog,升级后如果报错,直接改名旧配置目录,先跑默认配置确认新版特性,再一点点迁移自定义内容。这个方法能让你快速区分"是配置坏了"还是"软件环境坏了"。

7. 一点关于终端工作流的额外心得

现在我的日常基本是这样的:打开 Windows Terminal,输入yy进入 Yazi,所有文件操作都在里面完成,需要编辑文件就按回车唤起编辑器,需要执行命令就按;弹出 shell,需要拷贝路径就按Ctrl+y之类的快捷键直接拿路径。文件管理从"不得不处理的任务"变成了"不打断思路的流程",这是我在图形文件管理器里从来没体验过的流畅感。

最后分享一个小技巧:如果你已经把终端里的大部分工作流都迁移到 Yazi,建议把启动目录固定在你最常访问的工作目录,比如yy这个函数改成:

function yy { yazi "$HOME\Documents\work" }

这样每次打开 Yazi 就直接进入工作区,连导航都省了。先明确自己最常待的目录在哪里,然后把 Yazi 作为一个"常驻窗口"来使用,效率提升会非常明显。第一次用终端文件管理器确实会有一点别扭,但撑过前两小时,大概率就回不去了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询