
你在终端里折腾过文件管理吗如果你还在用cd和ls来回翻目录或者在 Windows 的 PowerShell 里靠dir硬撑那我觉得你真的该试试 yazi。这是一个用 Rust 写的新一代终端文件管理器主打同步预览、异步 I/O 和丰富的插件机制简单说就是让你在纯文本界面里也能拥有接近图形文件管理器的操作体验。这玩意儿目前在 GitHub 上已经很火了而且对 Windows 的支持也在快速完善我在 Windows Terminal 里把它当作日常主力文件管理工具已经有很长一段时间今天就把从安装、配置到实战的心得全部分享出来。这篇文章适合所有受够了目录切换痛苦、想在终端里提升文件操作效率的人。无论你是刚接触终端的新手还是已经用了一段时间 ranger 或 lf 的老手yazi 上手成本都很低而且你完全可以直接照抄我整理的配置方案省掉很多弯路上的时间。1. 内容整体设计与思路拆解1.1 为什么选 yazi终端文件管理的痛点与解法终端文件管理这个需求其实一直存在只是以前它的地位很尴尬。图形界面里我们用资源管理器或者 Finder鼠标点几下就完成操作效率看起来很直观。但一旦你开始重度使用终端就会发现问题靠cd、ls一层一层翻路径频繁敲目录名实在太浪费时间了想看看文件内容、图片预览、压缩包里装了什么传统终端工具根本做不到批量重命名、快速移动、在多个项目目录之间跳转更是只能靠各种命令组合加 Shell 脚本硬凑。yazi 解决的正是这些问题。它的全称是 Yet Another Zsh-inspired file manager 吗不是实际意义就是听起来干脆作者用 Rust 写的把异步这个理念贯彻到了极致。文件列表加载、图片预览、文件类型识别全都是后台异步处理的所以即使目录里几千个文件滚动起来也不卡。它内置了终端 UI、预览面板、文件搜索、批量选择、按目录跳转、自定义插件等一整套能力让你能在不离开终端的情况下完成绝大多数文件操作。我记得最早用 ranger 的时候感觉已经很惊艳了但 ranger 的问题是 Python 写的启动速度有点慢而且配置语法是 rc.conf 风格写多了容易绕。lf 也不错够轻量但功能相对朴素。yazi 的出现相当于把这两个工具的弱点都补上了Rust 启动飞快配置用 TOML逻辑清晰插件甚至支持用 Lua 扩展这对想来点自定义操作的玩家来说自由度足够大。1.2 方案选型的核心逻辑异步框架带来的体验质变为什么同类的终端文件管理器不少yazi 却能在短时间内火起来我自己分析核心就两个字异步。传统文件管理器在加载目录内容时是同步阻塞的文件一多、网络挂载目录一慢整个界面就卡住。而 yazi 在底层把 I/O 操作全做了异步处理目录加载、文件预览、缩略图生成各跑各的你按键盘切换目录时不会等到全部就绪才渲染。这一点实际用起来感知非常强烈。我有一台配置不高的办公笔记本之前用某工具打开带几万个文件的目录要等两三秒才出列表。换到 yazi 后基本是秒开而且滚动时也不会一卡一卡的。另一个让我惊喜的是预览机制yazi 会根据文件类型调用不同插件文本文件直接渲染高亮内容图片会通过终端图像协议显示缩略图压缩包直接列出内部结构PDF 文件也能截出第一页预览。这种预览能力在终端里非常实用尤其在找特定素材时不用每个文件敲命令打开确认了。所以如果你问终端文件管理器那么多为什么偏偏要学 yazi我的回答是因为它的设计理念更接近现代应用它把图形界面里那些高级功能都搬进了终端而且交互体验还保持得非常流畅。这篇文章后面的内容我会围绕怎么在 Windows 上用好 yazi 来展开毕竟目前网上关于 Windows 的教程相对零散踩坑经验更需要整理。2. Windows 环境准备与安装配置全流程2.1 前置依赖Windows 上跑 yazi 需要准备什么yazi 本身是跨平台的官方推荐在 Linux 和 macOS 上用但 Windows 支持也已经比较成熟了。很多人在 Windows 上安装失败不是 yazi 的问题而是缺了两样东西Windows Terminal 和一个能用的 ShellPowerShell 或 Windows Terminal 里的 Git Bash 都可以。yazi 运行在终端里但对终端本身的渲染能力有一定要求Windows 自带的 conhost 老古董就别指望了很多字符画、边框、预览效果都会错乱所以强烈建议先把 Windows Terminal 装好。如果你还没有它去 Microsoft Store 搜 Windows Terminal 装一个就行完全免费。然后是 Shell 的问题。yazi 只是个文件管理器前端它需要知道用什么命令去完成任务比如打开文件、复制文件、删除文件、调用编辑器等。在 Windows 上cmd、PowerShell、Git Bash 都行但体验最好的是 PowerShell因为 yazi 官方提供了针对 PowerShell 的集成方案可以一键让 yazi 接管你的终端工作目录。如果你平时习惯用 Git Bash也完全可以只是在设置打开文件的应用时要注意路径写法。还需要准备一个合适的终端字体。yazi 的界面大量依赖 Unicode 符号和图标如果你字体不支持界面会显示一堆方框。我自己用的是 CaskaydiaCove Nerd Font这是 Cascadia Code 的 Nerd Font 版本Windows Terminal 里对它的渲染效果很好。你可以在 Nerd Fonts 官网下载也可以去 GitHub 的 release 页面拿。安装字体时选为所有用户安装然后重新打开 Windows Terminal在设置里把字体改成它就行。2.2 安装 yazi 的三种方式实测最推荐哪种Windows 上安装 yazi 有很多种途径我逐个试过这里直接说结论。第一种是通过包管理器安装。如果你用的是 Windows 包管理器 winget直接执行命令winget install yazi这个命令会下载 yazi 的最新 release 并自动加入 PATH很省事。但要注意winget 仓库里的版本更新可能比官方慢一点如果你追求新功能可能还要手动更新。第二种是 Scoop 安装。像我这种在 Windows 上重度使用终端的用户Scoop 基本上是必备工具了。安装完 Scoop 之后执行scoop bucket add extras scoop install extras/yaziScoop 的好处是安装位置干净、方便卸载更新而且它还会自动帮你处理好很多依赖实测没什么大坑。第三种是自己下载二进制包。到 yazi 的 GitHub Releases 页面下载yazi-x86_64-pc-windows-msvc.zip一般 x64 机器选这个解压到某个目录比如C:\Tools\yazi然后把C:\Tools\yazi加进用户环境变量Path。这种方式最灵活适合想用最新开发版或者离线安装的人。从我个人的实际体验来说最推荐 Scoop因为它能同时管理 yazi 的后续升级一条scoop update yazi就搞定了。安装完成后在 PowerShell 里输入yazi --version验证一下能正常输出版本号就说明安装成功了。2.3 核心配置文件结构与 Windows 路径适配yazi 的配置目录在 Windows 上是%AppData%\yazi对应的完整路径一般是C:\Users\你的用户名\AppData\Roaming\yazi。程序首次运行后会自动创建默认的三个配置文件yazi.toml主配置、keymap.toml按键绑定、theme.toml主题样式。如果你没有看到这些文件可以手动建一个。主配置文件yazi.toml里最重要的几个选项是[manager] show_hidden false sort_by natural sort_dir_first true [preview] max_width 1000 max_height 1000 cache_dir show_hidden控制是否显示隐藏文件Windows 下对应那些带隐藏属性的文件。sort_by用natural可以在文件名排序时更自然比如file2会排在file10前面。sort_dir_first建议始终保持true让文件夹排在文件前面更符合 Windows 用户的使用习惯。预览区域的两项max_width和max_height控制预览内容的最大尺寸一般默认就好但如果你终端分辨率特别高可以适当调大否则图片预览可能显得太小。需要注意的是yazi 在 Windows 上的很多预览插件默认依赖file命令来识别文件类型但 Windows 没有这个命令所以你要么安装 Git for Windows 后在 PATH 里带上它的usr/bin目录要么在yazi.toml里明确指定文件识别器。我的做法是装 Git for Windows因为后面打开文件、调编辑器也得靠它带过来的很多 Unix 小工具。3. 核心操作与高性能工作流实战3.1 上手必备yazi 的按键操作逻辑与高频技巧yazi 的按键逻辑和 vim 有些像但没那么极端。启动后你会看到三栏布局最左是目录树中间是当前目录的文件列表最右是预览面板。方向键或者h、j、k、l可以切换选择l进入目录h返回上级目录空格键选中/取消选中文件回车针对当前文件执行打开操作。这些基础操作你十分钟就能摸熟但真正提升效率的是下面几个技巧第一按/可以快速搜索当前目录下的文件支持模糊匹配。你不需要打完整的文件名输入几个关键字母它会把匹配结果实时列出来回车就能跳转到匹配项。相比在资源管理器里用 CtrlF这个速度快了不止一倍。第二按y会弹出剪切/复制/粘贴的操作菜单yy复制当前文件路径dd移动文件pp粘贴。这个机制和 vim 的寄存器逻辑有点像上手后非常顺手。我自己最常用的场景是把一个目录里的几个文件复制到另一个目录在 yazi 里全程按键就能完成不用来回开资源管理器窗口。第三按Tab可以直接在当前文件、文件预览、目录预览之间切换焦点这对键盘流用户很友好。比如你进入一个目录后Tab 到左侧目录树可以快速展开/收起子目录然后回车跳转整个浏览过程完全不需要鼠标。另外按.可以切换隐藏文件的显示状态这个键位我在网上看到的教程里很少提但实际排查问题、翻配置文件的时候非常有用。按空格标记文件后再按a可以对所有标记文件进行批量操作批量复制、剪切、删除都在这里。3.2 在 Windows 上打开文件Shell 命令与默认程序的正确配置终端文件管理器的核心价值就是在终端里完成操作而不是打开图形界面所以怎么定义打开文件这个动作非常关键。在 yazi 里按回车打开文件时会调用open命令而这个命令是配置在yazi.toml的[opener]段里的。Windows 上最简单的配置是这样[opener] open [ { run cmd /c start $1, desc 打开文件, block false }, ]你可能会奇怪为什么要用cmd /c start因为在 PowerShell 里直接调用start命令在某些环境会有别名冲突而cmd /c start是最稳妥的方式它会调用 Windows 的默认关联程序打开文件。比如你回车一个.md文件它会用默认的 Markdown 编辑器打开回车一个图片会用默认图片查看器打开。对于代码文件的打开方式我通常还会配置一个用 VS Code 打开的选项按快捷键Ctrlo就能用 VS Code 打开当前文件或目录[opener] open in vscode [ { run code $1, desc 用 VS Code 打开, block false }, ]然后在keymap.toml里绑定快捷键[[manager.prepend_keymap]] on [ ctrl, o ] run open --choose open in vscode这样配置完之后你在终端里浏览项目文件发现某个文件需要改代码直接 Ctrlo 就跳进 VS Code 了不需要先记住路径再切窗口整个心流非常顺畅。还有一点值得提醒如果你在 Git Bash 环境下运行 yazicmd /c start依然有效但路径需要转成正斜杠或者原样传递yazi 默认会处理好。实测下来 Git Bash cmd start 的组合没有任何问题。3.3 高能进阶批量重命名、按内容搜索与目录快捷跳转日常文件管理里最烦的操作莫过于批量重命名。比如你现在有一堆截图文件名字全是截图_20240101_01.png这种想统一改成report_01.png、report_02.png用图形工具得装个批量重命名软件用 PowerShell 写命令又有点门槛。yazi 内置了批量重命名功能操作逻辑是这样的先选择要重命名的所有文件空格键逐个选中或者按Ctrla全选然后按;进入批量重命名模式。这时你会看到一个类似编辑器的界面光标落在文件名上你可以直接改动改动完成后按回车确认所有被选中的文件就会按照你改动的规则依次应用。更神的是yazi 的批量重命名是支持编号占位符的你只要在文件名里保留一个n它会自动替换成序号比如改成report_n.png实际重命名结果就是report_1.png、report_2.png。再说搜索。前面提到按/是搜当前目录文件名但如果你想在文件内容里搜索就得配合rgripgrep这样的工具。yazi 对 ripgrep 有原生集成按f可以直接在当前目录对文件内容做全文搜索搜索结果会列出来回车即可跳转到对应文件。Windows 上你需要先安装 ripgrep然后在配置里确认rg命令在 PATH 中。我自己用这个功能在项目里找代码片段比在 IDE 里全局搜索还快因为它只搜你要搜的那个目录不会把整个代码仓库都索引一遍。最后说目录快捷跳转。yazi 支持类似于 zoxide 的目录记忆功能按z可以弹出一个历史目录搜索框输入几个字母快速跳到之前去过的目录。如果你经常在多项目之间切来切去这个功能能让你节省大量cd的时间。在 Windows 上它读取的是终端的访问历史所以你只要在 yazi 里访问过一次的目录之后按z都能搜到非常智能。4. 插件扩展、主题定制与内部工具选型实解4.1 让预览脱胎换骨Windows 下安装使用文件预览插件yazi 本身的 UI 很简洁但它的扩展生态才是让它真正好用的核心。官方以及社区提供了一大堆插件你可以在 GitHub 上搜 yazi-rs/plugins也可以直接看 yazi 内置的ya pack命令。ya pack是 yazi 自带的插件管理器用法类似各种语言生态的包管理工具命令行执行ya pack add yazi-rs/plugins:full-borderfull-border这个插件可以让 yazi 的各个面板显示完整的边框和美观的分隔线视觉效果提升非常明显。安装后要在yazi.toml的[plugin]段里注册一般插件文档里会写清楚。Windows 上最值得装的插件是image和pdf预览类。image插件会调用终端图像协议在 Windows Terminal 新版中已经支持图片直出所以你在终端里能看到真正的图片缩略图不是那种用 ASCII 字符拼的假图。pdf插件会调用pdftoppm把 PDF 第一页转成图片再预览前提是你安装了 poppler 工具集。安装方式可以参考scoop install poppler然后在预览插件配置里指定pdftoppm的路径。这个折腾完之后你的终端基本上就是半个图形资源管理器了图片、PDF、视频缩略图都能预览体验非常爽。4.2 主题与图标让终端界面不再单调的关键配置终端文件管理器很多人第一眼觉得丑多半是因为字体和主题没配好。yazi 支持完整的主题系统配置文件在theme.toml里。你既可以手动指定各个 UI 元素的颜色也可以在网上找现成的主题直接贴进去。社区里比较火的有catppuccin、dracula、tokyonightyazi 官方仓库的examples目录里就有现成的主题文件直接复制过来改名成theme.toml就能用。我目前用的主题是 Catppuccin Mocha 配色配合 Windows Terminal 里同一个主题的背景色整体看起来非常协调。如果你想要图标支持yazi 也自带了图标映射表只要你的终端字体是 Nerd Font文件列表里就会显示对应的文件类型图标.rs、.py、.jpg 都有各自的标识。这一步配置很容易被忽略但做了之后整个界面信息辨识度会高很多。还有一个小细节是文件高亮。theme.toml里可以配置不同类型文件的文字颜色比如把.md文件标成绿色、把代码文件标成黄色、把压缩包标成红色。我习惯把经常碰的文件类型标出来这样扫一眼文件列表就知道大概结构了。4.3 内部工具选型trash-cli、fd、ripgrep 的 Windows 替代方案yazi 很多高级功能依赖外部命令行工具比如删除文件时如果想走回收站而不是永久删除就需要trash命令搜索文件时用fd比内置的 find 更快全文搜索用ripgrep。这三件套在 Linux 上是标配但在 Windows 上需要自己安装。我推荐的安装方式还是 Scoopscoop install trash fd ripgrep安装完成后在yazi.toml里配置删除命令。默认情况下 yazi 删除文件是直接删的如果你希望删除时进回收站可以覆盖删除操作。我的配置是这样的[manager] trash true启用trash后yazi 会优先调用系统的回收站机制Windows 上实测也是有效的。这对于偶尔误删文件的人来说算是一道保命防线。不过要提醒的是某些插件内部的删除操作可能不经过回收站所以在大批量删除之前还是自己留个心眼。除了工具本身还要注意 PATH 环境变量。Scoop 默认会把 shims 目录加到 PATH 里所以装完之后重启终端应该就能识别fd、rg这些命令。如果你用二进制包手动解压安装记得把工具路径手动加进 PATH。5. 常见问题与排查技巧实录5.1 启动报错、PATH 不生效与字体乱码的解决方案先聊聊新手最容易遇到的三个启动问题。第一种是安装完成后输入yazi提示不是内部或外部命令这几乎百分百是 PATH 没配好。如果你用的是 Scoop多半是 Scoop 的 shims 目录没在 PATH 里如果是手动解压的就得去系统属性 - 环境变量里确认路径。改完 PATH 之后一定要重开终端环境变量不会自动刷新到已有窗口。这里有个小技巧在 PowerShell 里执行refreshenv可以重新加载环境变量不用关窗口。第二种是 yazi 能启动但界面出现大量口口字符或者边框错乱。这个基本就是字体问题。Windows Terminal 默认字体 Cascadia Mono 对 Nerd Font 字符支持不全你需要装一个 Nerd Font然后在 Windows Terminal 设置里把字体名改成它。改完字体后yazi 里的图标、边框、状态栏符号就正常了。第三种是启动 yazi 后提示缺少配置目录。这种情况一般是你手动建了配置目录但路径不对或者 yazi 的版本升级后配置格式变了。最简单的解决办法是把%AppData%\yazi目录先备份一下然后整个删掉重新启动 yazi 让它自动生成默认配置然后你再把自己需要的配置一项项加回去。不要心疼配置反正大部分配置文档里都有重建成本很低。5.2 预览不显示图片与某些文件打不开的处理方法图片预览是很多人装 yazi 后的第一个惊叹点但如果在 Windows 上没显示出来原因可能有两个。第一个是终端不支持图像协议。Windows Terminal 从某个版本开始支持了终端内图片预览但如果你用的是老的 conhost 或者其他终端模拟器可能就不支持。建议把 Windows Terminal 升级到最新正式版在官方文档里确认你的版本支持 iTerm 图像协议。第二个原因是 yazi 的图片预览依赖一个外部工具chafa或者ueberzugpp在 Windows 上通常用chafa作为后端。安装命令scoop install chafa然后在yazi.toml的预览设置里指定图片预览方式。如果还不行打开 yazi 日志看报错信息日志文件在%LocalAppData%\yazi下里面有预览时的详细报错。我自己遇到过的问题是 chafa 版本太旧升级到最新版之后一切正常。文件打不开的情况则要先确认opener配置是否正确。比如按回车打开.txt文件没反应你可以先在终端里手动执行一下cmd /c start C:\path\to\file.txt看看能不能打开。如果这条命令能打开说明 yazi 配置有问题如果也打不开说明文件关联本身有问题要去 Windows 设置里修复默认应用。5.3 性能优化技巧大目录卡顿与延迟加载调优yazi 本身很快但如果遇到超大目录几万甚至几十万个文件的模型数据集、node_modules 这种偶尔也会有延迟。Windows 文件系统的枚举性能和 Linux 相比有一些差异我自己实测在 NTFS 上打开超大目录yazi 明显要比本地资源管理器快但也需要注意一些调优细节。第一个调优点是预览缓存。大目录里如果开启了图片预览进入目录时所有图片都要生成缩略图即使异步处理CPU 也会飙升。你可以在yazi.toml里限制预览的并发数[preview] max_workers 2这个数值默认是 4改成 2 能明显降低 CPU 压力当然预览出现速度会慢一点点。如果你的电脑是高端多核处理器保持 4 也没问题。第二个调优点是排序方式。如果对超大目录按modified修改时间排序每次进入目录都要全量读取元数据比按文件名排序更慢。所以日常使用时用natural排序就好除非你确实需要按时间查找文件。第三点是要留意杀毒软件。Windows Defender 实时监控会扫描新访问的目录尤其是执行二进制文件时会造成明显的启动和目录切换延迟。如果你把 yazi 加入 Defender 的排除列表体感速度能快不少。这个操作在病毒和威胁防护设置 - 排除项里添加 yazi 的可执行文件路径即可。5.4 从 ranger、lf 迁移过来的按键习惯冲突解决办法我在使用 yazi 之前算是 ranger 和 lf 的老用户迁移过来时最大的障碍就是按键习惯。ranger 里常用的yy复制、dd剪切、pp粘贴在 yazi 里其实是一致的这一点设计得很好。但有一些操作变了比如 ranger 里gh跳到 home 目录yazi 里直接按~也能回到 home 目录ranger 里按S在目录里开一个 shellyazi 里是Ctrlo打开 shell。如果实在适应不了默认按键yazi 允许你在keymap.toml里完全自定义。比如你可以把某个习惯的操作绑回到原来的键位。我迁移时唯一做的自定义是格式化整理了一个跳到上一个访问目录的快捷键[[manager.prepend_keymap]] on [ u ] run back因为在 ranger 里按u可以回到历史目录而 yazi 默认的返回是h按u更顺手。你完全可以按照自己的肌肉记忆去调整不用强迫自己适应 yazi 的默认键位。6. 我的实际使用心得与扩展建议文章写到这里该讲的技术点都讲得差不多了。回想我刚开始捣鼓 yazi 的那段时间最大的收获并不是换了一个好用的工具而是明白了为什么一个终端文件管理器能火起来。它本质上是在终端这个看似原始的环境里用现代的工程思维重新做了一遍人机交互设计。异步的体验、可定制的架构、丰富的插件生态这些东西放在任何软件里都是优秀的标准。如果你现在还在犹豫要不要从资源管理器切换到 yazi我的建议是先用一个月把所有能塞进终端的操作都塞进去。前三天肯定会觉得按键繁琐但从第二周开始你的肌肉记忆会逐渐形成。一旦习惯了 yazi 的工作流再回去用图形资源管理器反而会觉得来回开窗口、点鼠标非常低效。我个人目前的使用状态是日常文件整理、项目目录跳转、快速搜索、批量重命名全部在 yazi 里完成需要编辑文件的时候按一个快捷键呼出 VS Code看完文件关掉编辑器焦点回到终端又可以用 yazi 继续下一步操作。整个流程几乎没有停顿这种流畅感是实打实提升工作效率的东西。最后分享一个扩展想法yazi 支持通过ya pack装插件如果你懂一点 Lua甚至可以自己写一个超级个性化的插件比如一键把所有图片按拍摄日期归类、批量压缩某个目录下的所有文件、把选中的文件上传到对象存储。我目前已经在用自己写的一个小插件专门把项目里面的临时文件自动移到.cache目录省去了大量手动整理的时间。终端文件管理器的上限不在工具本身而在你愿意花多少心思去打磨它。希望你在用 yazi 的过程中也能体验到这种把工具变成自己专属形状的乐趣。