1884 字
9 分钟
-
-
yazi

安装#

  • sudo snap install yazi
    • sudo 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/plain
    • text/plain:指定的 MIME 类型(这里是 指普通文本)

配置#

  • 命令行输入:nano ~/.config/yazi/yazi.toml
# ============ 管理器设置 ============
[manager]
ratio = [1, 4, 3]
sort_by = "alphabetical"
show_hidden = false
# ============ 预览设置 ============
[preview]
max_width = 600
max_height = 900
# ============ 文件打开器 ============
[opener]
# LibreOffice — 统一打开 xlsx/xls/ods/pdf/csv
libreoffice = [
{ run = 'libreoffice "$@"', orphan = true, desc = "LibreOffice" }
]
# 图片 — nomacs
nomacs = [
{ run = 'nomacs "$@"', orphan = true, desc = "nomacs" }
]
# 文本编辑 — NeoVim
nvim = [
{ run = 'nvim "$@"', block = true, desc = "NeoVim" }
]
# 视频/音频 — VLC
vlc = [
{ 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 = false
  • ratio = [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 = 600
max_height = 900
  • max_width = 600:预览图片的最大宽度(像素)
  • max_height = 900:预览图片的最大高度(像素)
  • 这些设置控制图片预览时的尺寸限制,防止大图片占用过多内存

文件打开器 :[opener]#

参数说明:#
参数含义(作用)
run执行的命令
"%@"代表选中文件的路径,Yazi 会自动替换占位符(Shell 语法)
blocktrue = 阻塞等待程序关闭;false = 不等待终端编辑器选择
orphantrue = 脱离终端独立运行GUI 程序必加
desc描述信息
for平台限定:"unix""windows"

文件打开规则:[open]#

参数说明#
参数作用
orphan = trueGUI 程序必加脱离终端独立运行,关闭 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 类型
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xlsapplication/vnd.ms-excel
.odsapplication/vnd.oasis.opendocument.spreadsheet
.pdfapplication/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智能进入目录
预览duckdbJSON/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
yazi
https://gtlx.ltd/posts/终端软件/yazi/
作者
GTLX
发布于
2026-05-13
许可协议
CC BY-NC-SA 4.0