Yazi安装使用
文章目录一、什么是 YaziYazi 能做什么Yazi 的优点二、Mac安装Yazi及常用依赖三、PDF 预览四、预览 Office 文档1. 安装 office.yazi 插件2. 安装 LibreOffice 和 Poppler3. 解决 macOS 中找不到 libreoffice 命令的问题4. 配置 Office 预览规则5. 解决 preview_widgets 兼容性错误五、常用操作与搜索/ 和 s 的区别六、为不同类型的文件配置打开软件七、配置时的注意事项1. 不要重复声明 TOML 表2. Enter 与 Shift Enter 的区别3. 修改配置后重新启动 Yazi八、总结九、参考资料十、说明一、什么是 YaziYazi 是一个使用 Rust 编写的终端文件管理器TUI File Manager。它运行在终端中却提供了接近图形化文件管理器的多栏布局、文件预览、快捷键操作和插件扩展能力。简单来说它可以理解为运行在终端里的 Finder但更适合习惯键盘操作、Vim快捷键和命令行工作流的用户。Yazi 能做什么浏览、复制、移动、重命名和删除文件预览文本、代码、图片、PDF、视频等文件借助插件预览DOCX、XLSX、PPTX等Office文档使用fd搜索文件名使用ripgrep搜索文件内容使用fzf、zoxide等工具快速定位文件和目录根据文件类型选择不同的软件打开使用Vim风格快捷键完成大部分操作通过插件和配置文件扩展功能。Yazi 的优点速度快Yazi 使用 Rust 编写并支持异步 I/O浏览大目录时依然比较流畅。键盘操作效率高熟悉 Vim 的用户几乎不需要学习鼠标操作。预览能力丰富可以在终端中直接预览文本、代码、图片、PDF、视频缩略图等内容。可扩展性强支持 Lua 插件并可通过 TOML 文件配置预览器、打开方式和快捷键。适合命令行工作流可以与编辑器、终端、搜索工具和 Shell 脚本自然结合。二、Mac安装Yazi及常用依赖使用Homebrew安装Yazi和常用的预览、搜索工具brewinstallyazi ffmpeg-full sevenzip jq poppler fd ripgrep fzf zoxide resvg imagemagick-full font-symbols-only-nerd-font如果ffmpeg-full或imagemagick-full没有自动建立可执行文件链接可以执行brewlinkffmpeg-full imagemagick-full--force--overwrite这些依赖并非全部为 Yazi 启动所必需而是用来增强不同类型文件的预览和搜索能力工具主要用途ffmpeg-full视频信息提取和缩略图预览sevenzip压缩包内容预览jqJSON 格式化与预览poppler提供pdftoppm等 PDF 工具fd快速搜索文件名ripgrep快速搜索文件内容fzf模糊搜索和交互式选择zoxide根据使用频率快速跳转目录resvgSVG 渲染imagemagick-full图片格式识别与转换Nerd Font在终端中正确显示文件图标和符号安装完成后运行yazi三、PDF 预览Yazi的PDF预览需要pdftoppm它由Poppler提供brewinstallpoppler验证是否安装成功pdftoppm-v如果前面已经执行过完整依赖安装命令则不需要重复安装 Poppler。选中 PDF 后可以使用以下按键翻页Shift J向后翻页Shift K向前翻页。也就是大写的J和K。小写j、k用于在文件列表中移动光标。四、预览 Office 文档Yazi默认不能直接渲染Office 文档。office.yazi插件的工作方式是先调用LibreOffice将Office文档转换成临时PDF再调用pdftoppm将PDF页面转换为图片并显示在预览区域。它支持 DOCX、XLSX、PPTX、ODT、ODS 和 ODP 等格式。1. 安装 office.yazi 插件ya pkgaddmacydnah/office2. 安装 LibreOffice 和 Popplerbrewinstall--casklibreoffice brewinstallpoppler3. 解决 macOS 中找不到 libreoffice 命令的问题office.yazi默认调用名为libreoffice的命令但macOS应用包中实际提供的可执行文件通常是/Applications/LibreOffice.app/Contents/MacOS/soffice先检查文件是否存在ls-l/Applications/LibreOffice.app/Contents/MacOS/sofficeApple Silicon Mac的Homebrew命令目录通常是/opt/homebrew/bin可以建立软链接ln-sf/Applications/LibreOffice.app/Contents/MacOS/soffice\/opt/homebrew/bin/libreoffice验证依赖libreoffice--versionpdftoppm-v4. 配置 Office 预览规则创建或修改~/.config/yazi/yazi.toml[plugin] prepend_preloaders [ { mime application/openxmlformats-officedocument.*, run office }, { mime application/oasis.opendocument.*, run office }, { mime application/ms-*, run office }, { mime application/msword, run office }, { url *.docx, run office }, ] prepend_previewers [ { mime application/openxmlformats-officedocument.*, run office }, { mime application/oasis.opendocument.*, run office }, { mime application/ms-*, run office }, { mime application/msword, run office }, { url *.docx, run office }, ]这里使用的是新版Yazi支持的url字段。部分旧教程中的name *.docx在新版 Yazi 中可能导致配置解析错误。5. 解决 preview_widgets 兼容性错误在Yazi 26.5.6等新版本中office.yazi可能出现以下错误attempt to call a nil value (field preview_widgets)打开插件文件~/.config/yazi/plugins/office.yazi/main.lua在M:peek(job)函数中找到ya.preview_widgets(job, {})将其注释functionM:peek(job)localstart,cacheos.clock(),ya.file_cache(job)ifnotcachethenreturnendlocalok,errself:preload(job)ifnotokorerrthenreturnendya.sleep(math.max(0,rt.preview.image_delay/1000start-os.clock()))ya.image_show(cache,job.area)-- ya.preview_widgets(job, {})end修改后完全退出 Yazi再重新启动。注意插件升级可能覆盖对main.lua的手工修改。如果升级后错误再次出现需要重新检查该文件。当前插件与新版 Yazi 还可能存在 DOCX 只能显示第一页、无法正常翻页的问题PDF 的Shift J/K翻页通常不受影响。五、常用操作与搜索按键作用q退出 YaziF1或~打开帮助界面j/k在文件列表中向下/向上移动h/l返回上级目录/进入目录Enter或o使用第一个匹配的 opener 打开文件Shift Enter或Shift O显示当前文件可用的打开方式Shift J/K滚动预览PDF 预览时可用于翻页/在当前文件列表中查找文件名s使用fd递归搜索文件名Shift S使用ripgrep递归搜索文件内容Ctrl S取消正在进行的搜索/和s的区别/主要是在 Yazi 当前显示的文件列表中定位名称匹配项适合在当前目录快速寻找文件。小写s会调用fd进行文件名搜索可以递归查找当前目录及其子目录。大写S会调用ripgrep搜索文件内容适合 Markdown、代码、配置文件、CSV 等文本文件。DOCX、XLSX、PPTX 等压缩或二进制格式不能直接通过ripgrep搜索内部文字。六、为不同类型的文件配置打开软件Yazi不会自动读取macOS Finder中完整的打开方式列表。按Shift Enter时显示的选项来自yazi.toml中为当前文件配置的opener。下面的配置为文件增加三个打开方式使用 macOS 默认应用打开使用 Visual Studio Code 打开使用 Warp 打开。修改~/.config/yazi/yazi.toml[opener] system [ { run open $, orphan true, desc macOS 默认应用 }, ] vscode [ { run open -a Visual Studio Code $, orphan true, desc Visual Studio Code }, ] warp [ { run open -a Warp $, orphan true, desc Warp }, ] [open] prepend_rules [ { url *.{doc,docx}, use [system] }, { url *.{xls,xlsx}, use [system] }, { url *.{ppt,pptx}, use [system] }, { url *.md, use [warp, system, vscode] }, ]use中填写的并不是应用名称或 Shell 命令而是[opener]下定义的键名例如warp、system和vscode。对于Markdown文件上面的顺序意味着按o或Enter使用列表中的第一个 opener即 Warp按Shift O或Shift Enter显示 Warp、macOS 默认应用和 Visual Studio Code供用户选择。如果希望按Enter时默认使用 VS Code可以调整顺序{ url *.md, use [vscode, system, warp] }如果希望优先使用 macOS 已配置的默认应用{ url *.md, use [system, vscode, warp] }应用名称可以先在普通终端中验证open-aVisual Studio CodeREADME.mdopen-aWarpREADME.md如果终端能够正常打开Yazi中通常也可以正常调用。七、配置时的注意事项1. 不要重复声明 TOML 表如果yazi.toml中已经存在[opener]、[open]或[plugin]应把新配置合并到原有区块中不要再次创建同名表否则可能出现 TOML 解析错误。2.Enter与Shift Enter的区别Enter或o直接使用use列表中的第一个 openerShift Enter或Shift O列出当前规则中配置的全部有效 opener。Yazi 不会因为use [Visual Studio Code]就自动识别该应用必须先在[opener]中定义对应键名。3. 修改配置后重新启动 Yazi修改插件或配置文件后建议完全退出所有 Yazi 实例再重新运行yazi八、总结Yazi的核心优势并不只是在终端中浏览文件而是把文件管理、内容预览、快速搜索和外部工具调用组合成一个以键盘为中心的工作流。完成本文配置后可以获得以下能力在终端中快速浏览文件和目录预览文本、图片、PDF 和常见 Office 文档使用fd搜索文件名使用ripgrep搜索文件内容使用不同应用打开同一种文件用少量快捷键完成常见文件管理操作。对于经常使用终端、VS Code、Vim、Warp 或命令行工具的用户来说Yazi 可以显著减少在终端和 Finder 之间来回切换的次数。九、参考资料Yazi 官方网站Yazi Quick Startoffice.yazi十、说明本文由AI和本人合作完成