1884 字
9 分钟
yazi
安装
sudo snap install yazisudo snap install yazi --classic
使用
- 配置文件地址:
~/.config/yazi/(Linux/macOS)%AppData%\yazi\config(Windows)
- 通用配置:
yazi.toml - 快捷键配置:
keymap.toml- 默认快捷键与vim类似
- 配色方案配置:
theme.toml(主题) - 显示调试:
yazi --debug - 查询默认应用程序:
xdg-mime query default text/plaintext/plain:指定的 MIME 类型(这里是 指普通文本)
配置
- 命令行输入:
nano ~/.config/yazi/yazi.toml
# ============ 管理器设置 ============[manager]ratio = [1, 4, 3]sort_by = "alphabetical"show_hidden = false
# ============ 预览设置 ============[preview]max_width = 600max_height = 900
# ============ 文件打开器 ============[opener]# LibreOffice — 统一打开 xlsx/xls/ods/pdf/csvlibreoffice = [ { run = 'libreoffice "$@"', orphan = true, desc = "LibreOffice" }]
# 图片 — nomacsnomacs = [ { run = 'nomacs "$@"', orphan = true, desc = "nomacs" }]
# 文本编辑 — NeoVimnvim = [ { run = 'nvim "$@"', block = true, desc = "NeoVim" }]
# 视频/音频 — VLCvlc = [ { run = 'vlc "$@"', orphan = true, desc = "VLC" }]
# AppImage — 需要先手动赋予权限appimage = [ { run = '"$@"', desc = "运行 AppImage", block = true }]
# 兜底:系统默认程序fallback = [ { run = 'xdg-open "$@"', orphan = true, desc = "系统默认" }]
# ============ 文件打开规则 ============[open]rules = [ # 图片 → nomacs { mime = "image/*", use = ["nomacs", "reveal"] },
# 办公文档 + PDF → LibreOffice(mime 匹配) { mime = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", use = ["libreoffice"] }, { mime = "application/vnd.ms-excel", use = ["libreoffice"] }, { mime = "application/vnd.oasis.opendocument.spreadsheet", use = ["libreoffice"] }, { mime = "application/pdf", use = ["libreoffice"] }, { mime = "text/csv", use = ["libreoffice"] },
# 办公文档兜底:url 匹配(防止 MIME 被误识别为 zip) { url = "*.xlsx", use = ["libreoffice"] }, { url = "*.xls", use = ["libreoffice"] }, { url = "*.ods", use = ["libreoffice"] }, { url = "*.csv", use = ["libreoffice"] }, { url = "*.pdf", use = ["libreoffice"] },
# 视频/音频 → VLC { mime = "video/*", use = ["vlc", "reveal"] }, { mime = "audio/*", use = ["vlc", "reveal"] },
# 文本文件 → NeoVim { mime = "text/*", use = ["nvim", "reveal"] }, { mime = "application/json", use = ["nvim", "reveal"] },
# AppImage 文件及其它可执行文件 { mime = "application/vnd.appimage", use = ["appimage"] }, { url = "*.AppImage", use = ["appimage"] }, { mime = "application/x-executable", use = ["appimage"] }, { mime = "application/x-sharedlib", use = ["appimage"] },]说明
管理器设置:[mgr]
[mgr]ratio = [1, 4, 3]sort_by = "alphabetical"show_hidden = falseratio = [1, 4, 3]:设置yazi界面三个面板的宽度比例- 第一个数字:左侧面板宽度比例(通常是父目录树或预览)
- 第二个数字:中间主文件列表宽度比例
- 第三个数字:右侧面板宽度比例(通常是预览面板)
[1, 4, 3]表示比例为 1:4:3
sort_by = "alphabetical":文件排序方式"alphabetical":按字母顺序排序- 其他可选值:
"natural"(自然排序)"mtime"(修改时间)"size"(文件大小)"ctime"(创建时间)"atime"(访问时间)
show_hidden = false:是否显示隐藏文件false:不显示以点(.)开头的隐藏文件true:显示所有隐藏文件
预览设置:[preview]
[preview]max_width = 600max_height = 900max_width = 600:预览图片的最大宽度(像素)max_height = 900:预览图片的最大高度(像素)- 这些设置控制图片预览时的尺寸限制,防止大图片占用过多内存
文件打开器 :[opener]
参数说明:
| 参数 | 含义(作用) | 值 |
|---|---|---|
run | 执行的命令 | |
"%@" | 代表选中文件的路径,Yazi 会自动替换 | 占位符(Shell 语法) |
block | true = 阻塞等待程序关闭;false = 不等待 | 终端编辑器选择 |
orphan | true = 脱离终端独立运行 | GUI 程序必加 |
desc | 描述信息 | |
for | 平台限定:"unix" 或 "windows" |
文件打开规则:[open]
参数说明
| 参数 | 值 | 作用 |
|---|---|---|
orphan = true | GUI 程序必加 | 脱离终端独立运行,关闭 Yazi 后程序不退出 [1] |
mime | 用 MIME 类型的 glob 表达式来匹配文件。 | |
| 语法 | glob 通配符表达式,如 text/*、image/*、application/pdf | |
| 大小写 | 默认不区分大小写。若要区分,在表达式开头加 \s(如 \stext/*) | |
| 多类型 | 可用 {} 同时匹配多个,如 {audio,video}/* | |
use | 指定用[opener]中的哪个(或哪些)打开器来处理匹配到的文件。 | |
| 类型 | 必须是数组,如 use = ["edit"],不能是字符串 use = "edit" | |
| 多 opener | 可以指定多个,如use = ["open", "edit"] | |
| 对应关系 | 数组中的名称必须与[opener]段定义的规则名一致,如 edit、play、libreoffice 等 | |
"reveal" | 内置值 | 同时在预览面板显示文件内容 [1] |
MIME 类型速查表
| 文件类型 | MIME 类型 |
|---|---|
.xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
.xls | application/vnd.ms-excel |
.ods | application/vnd.oasis.opendocument.spreadsheet |
.pdf | application/pdf |
| 所有图片 | image/* |
主题美化
主题的安装
手动安装主题
- 创建
yazi主题目录:mkdir -p ~/.config/yazi/flavors
图标美化
安装 Nerd Fonts 字体来显示图标
- Arch Linux:
sudo pacman -S ttf-nerd-fonts-symbols - macOS:
brew install font-symbols-only-nerd-font
配置
- 终端输入:
nano ~/.config/yazi/theme.toml
[general]# 设置主界面配色方案background_color = "#1e1e2e" # 背景颜色foreground_color = "#cdd6f4" # 文本颜色cursor_color = "#89dceb" # 光标颜色selection_color = "#585b70" # 选中项背景颜色highlight_color = "#fab387" # 高亮颜色
[ui]# 界面边框与间距border_color = "#45475a" # 边框颜色padding = 4 # 界面内容的内边距
[file_browser]# 文件浏览器颜色配置directory_color = "#89b4fa" # 目录名称颜色file_color = "#cdd6f4" # 普通文件颜色symlink_color = "#f5c2e7" # 符号链接颜色hidden_file_color = "#6c7086" # 隐藏文件颜色
[status_bar]# 状态栏颜色background_color = "#313244" # 状态栏背景foreground_color = "#a6adc8" # 状态栏文字error_color = "#f38ba8" # 状态栏错误信息
[icon]# ============ 文件夹图标 ============dirs = [ # 特殊文件夹 — 名字精确匹配 { name = ".git", text = "", fg = "#f14c28" }, { name = ".github", text = "", fg = "#ffffff" }, { name = ".ssh", text = "", fg = "#f9e2af" }, { name = "Desktop", text = "", fg = "#89b4fa" }, { name = "Documents",text = "", fg = "#4ade80" }, { name = "Downloads",text = "", fg = "#74c7ec" }, { name = "Music", text = "", fg = "#cba6f7" }, { name = "Pictures", text = "", fg = "#94e2d5" }, { name = "Videos", text = "", fg = "#f38ba8" }, { name = "node_modules", text = "", fg = "#6c7086" },]
# ============ 文件图标 ============files = [ # 按文件名匹配 { name = "Dockerfile", text = "", fg = "#89b4fa" }, { name = "docker-compose.yml", text = "", fg = "#89b4fa" }, { name = "package.json", text = "", fg = "#e8274b" }, { name = "package-lock.json", text = "", fg = "#6c7086" }, { name = "README.md", text = "", fg = "#f59e0b" }, { name = "LICENSE", text = "", fg = "#cdd6f4" }, { name = "Makefile", text = "", fg = "#6c7086" }, { name = "*.rs", text = "", fg = "#f38ba8" }, { name = "*.py", text = "", fg = "#89b4fa" }, { name = "*.js", text = "", fg = "#f9e2af" }, { name = "*.ts", text = "", fg = "#74c7ec" }, { name = "*.lua", text = "", fg = "#89b4fa" }, { name = "*.toml", text = "", fg = "#6c7086" }, { name = "*.yaml", text = "", fg = "#6c7086" }, { name = "*.yml", text = "", fg = "#6c7086" }, { name = "*.json", text = "", fg = "#f9e2af" }, { name = "*.lock", text = "", fg = "#6c7086" }, { name = "*.zip", text = "", fg = "#6c7086" }, { name = "*.tar*", text = "", fg = "#6c7086" },]背景渲染
ueberzugpp
- 基于 ueberzug协议
- arch系安装:
sudo pacman -S ueberzugpp - 验证安装:
ueberzugpp --version
插件的管理
- yazi 本身不直接处理挂载,但可以通过插件增强体验:
- U盘的挂载 见 > [[U盘的自动挂载#yazi终端文件管理器中使用]]
常见的插件
| 类别 | 依赖/插件 | 用途 | 程度 |
|---|---|---|---|
| augment-command | 命令增强 | ||
| bypass | 智能进入目录 | ||
| 预览 | duckdb | JSON/CSV/Excel 预览 | |
| 美化 | full-border | 边框美化插件 | |
| 解压 | fast-enter | 解压文件,并进入 | |
| 挂载 | gvfs | 设备挂载 | |
| 挂载 | mount | 挂载设备 | |
| 预览 | mediainfo | 媒体文件信息预览 | |
| 压缩 | ouch | 压缩文件操作 | |
| 回收站 | recycle-bin | 回收站功能 | |
| 美化 | starship | 状态栏美化 | |
| 智能进入 | smart-enter | 智能进入 | |
| 书签 | whoosh | 书签管理 |
通过yazi包配置 yazi 插件:
- 安装 yazi 的 mount 插件:
ya pack -a yazi-rs/plugins:mount
# 编辑 ~/.config/yazi/package.toml[plugin]add = ["mount"]手动下载插件包
- 创建 yazi 插件目录:
mkdir -p ~/.config/yazi/plugins
