Yazi
如果你已经在使用 Neovim,如果你碰巧也在使用 NvimTree 插件,那么你一定要试用一下 Yazi,因为 Yazi 有 90% 的快捷键是跟 Neovim 相同的。
什么是 Yazi
Blazing fast terminal file manager written in Rust, based on async I/O.
安装
记得查看 官方文档
Install with Scoop
看官方文档。
Install with WinGet
看官方文档。
- 把
C:\Program Files\Git\usr\bin
添加至环境变量(漏掉这一步的话,在 yazi 内部无法通过Enter
、o
、O
打开文件) - 安装 yazi 和批量依赖sh
winget install sxyazi.yazi # Install the optional dependencies (recommended): winget install Gyan.FFmpeg 7zip.7zip jqlang.jq sharkdp.fd BurntSushi.ripgrep.MSVC junegunn.fzf ajeetdsouza.zoxide ImageMagick.ImageMagick
- 下载 poppler-windows 下的
Release-24.08.0-0.zip
,解压缩,把Library/bin
目录添加至环境变量(之后,可以正常预览 PDF 文件) - 下载 resvg 下的
resvg-0.45.1.tar.xz
,解压缩
注意:记得手动检查环境变量里面是否有添加 jq 和 ffmpeg 的安装路径。若无,请手动添加这两个安装路径至环境变量。
配置
- Windows 系统,在
C:\Users\USERNAME\AppData\Roaming\yazi\config\
创建配置文件 - macOS 系统,在
~/.config/yazi/
创建配置文件
yazi.toml
toml
[mgr]
ratio = [2,2,4]
show_hidden = true
show_symlink = true
[opener]
edit = [
{ run = '$EDITOR "$@"', block = true, for = "unix" },
{ run = "%EDITOR% %*", block = true, for = "windows" },
]
open = [
{ run = 'zathura "$@"', block = true, mime = "application/pdf" },
{ run = 'open "$@"', desc = "Open", for = "macos" },
]
当 Yazi 的文档建议安装 Poppler 时,其用途是为了在 Yazi 的用户界面内进行 内部文件预览,而不是用于在另一个独立的窗口中打开文件。
以下是这两个不同功能的详细说明:
预览 (在 Yazi 内部)
- 它是什么: Yazi 有一个预览窗格,可以在不打开文件的情况下显示其内容
- 它如何处理 PDF: Yazi 本身无法在终端中渲染复杂的 PDF 文件。因此,它依赖外部的命令行工具将 PDF 转换成它能够显示的简单格式
- Poppler 的作用: Poppler 软件包提供了一个名为
pdftotext
的实用工具。Yazi 的预览器会调用pdftotext
来处理选定的 PDF 文件,提取其中的纯文本,然后将这些文本显示在预览窗格中。对于支持图像预览的终端(如 Kitty 或 iTerm2),Yazi 也可能使用 Poppler 的另一个工具pdftoppm
将 PDF 的第一页渲染成图像进行预览 - 结果: 您可以在文件管理器内部快速浏览 PDF 的内容(通常只有文本)
打开 (使用外部应用程序)
- 它是什么: 这是当您在文件上按
Enter
或l
键时发生的操作。它会启动一个完全独立的应用程序来查看该文件 - 它如何工作: 这个行为由您
yazi.toml
文件中的[opener]
部分控制。Yazi 只是将文件路径传递给您指定的命令(例如zathura
、open
或xdg-open
) - Zathura/Preview 的作用: Zathura 是一个功能齐全的文档查看器。它是一个独立的 应用程序,它内部可能使用 Poppler 库来渲染 PDF,但它本身是一个独立的程序。macOS 的“预览”应用则使用苹果自己的 Quartz 渲染引擎
- 结果: 一个在 Yazi 之外的新窗口会打开,显示完整的 PDF,包含所有格式、图形和交互功能
- 它是什么: 这是当您在文件上按
总结
功能 预览 (Preview) 打开 (Open) 目的 快速查看文件内容 完整的阅读和交互 位置 在 Yazi 的 UI 窗格内部 一个独立的外部应用程序窗口 使用的工具 Poppler 的命令行工具 ( pdftotext
)一个查看器应用程序 (Zathura, Preview) 配置方式 Yazi 的内部预览器设置(通常是自动检测) yazi.toml
文件中的[opener]
部分
总而言之,您需要 Poppler 是为了让 Yazi 向您展示 PDF 的预览,而您需要 Zathura(或其他查看器)是为了让 Yazi 为您打开 PDF 以供阅读。
theme.toml
cd C:\Users\USERNAME\AppData\Roaming\yazi\config\
mkdir flavors
ya pack -a yazi-rs/flavors:catppuccin-macchiato
- add into
theme.toml
toml[flavor] dark = "catppuccin-macchiato" light = "catppuccin-macchiato"