Ranger 的精神续作,但用 Rust 写成,速度快了十倍。
Yazi 是一个基于 Rust 的终端文件管理器,目标是成为「终端下的 Finder」。它支持异步 I/O、并行预览、内置插件系统,体验非常现代化。
安装#
在 NixOS 的 home.nix 或 configuration.nix 中:
home.packages = with pkgs; [
yazi
];或者直接用 cargo:
cargo install --locked yazi-fm yazi-cli基本操作#
启动:yazi
| 按键 | 动作 |
|---|---|
j/k 或 ↓/↑ | 上下移动 |
h/l 或 ←/→ | 进入/退出目录 |
Enter | 打开文件 |
Space | 选择/取消选择 |
y | 复制 |
d | 剪切 |
p | 粘贴 |
D | 删除(到回收站) |
/ | 搜索 |
z | 跳转(zoxide 集成) |
~ | 切换到主目录 |
杀手级功能#
1. 实时预览#
不用打开文件就能预览内容:
- 图片:终端内直接显示图片(需要支持 sixel/kitty/iTerm2 的终端)
- PDF:第 1 页缩略图
- 视频:第 1 帧截图
- 代码:语法高亮
在 NixOS 上配合 Kitty 终端使用效果最佳。
2. 异步操作#
复制 10GB 文件夹时,Yazi 不会阻塞界面。你可以在复制的同时继续浏览其他目录。
3. 集成 Zoxide#
如果你用了 zoxide(z 命令),Yazi 内置支持 z 跳转:
按 z → 输入 "doc" → 回车
直接跳转到 ~/Documents4. Shell 集成#
在 .bashrc / .zshrc / config.fish 中加入:
# 按 q 退出时,自动 cd 到当前目录
function yy() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
yazi "$@" --cwd-file="$tmp"
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
cd -- "$cwd"
fi
rm -f -- "$tmp"
}用法:yy 启动 Yazi,按 q 退出后,shell 会自动 cd 到你最后所在的目录。
配置文件#
Yazi 的配置在 ~/.config/yazi/:
~/.config/yazi/
├── yazi.toml # 主配置
├── keymap.toml # 按键映射
├── theme.toml # 主题
└── plugins/ # 插件我的 keymap.toml 节选#
[[manager.prepend_keymap]]
on = [ "g", "d" ]
run = 'cd ~/Documents'
desc = "Go to Documents"
[[manager.prepend_keymap]]
on = [ "g", "D" ]
run = 'cd ~/Downloads'
desc = "Go to Downloads"
[[manager.prepend_keymap]]
on = [ "g", "c" ]
run = 'cd ~/.config'
desc = "Go to Config"与 Ranger 对比#
| 特性 | Ranger | Yazi |
|---|---|---|
| 语言 | Python | Rust |
| 启动速度 | 慢(~1s) | 极快(<50ms) |
| 异步 I/O | 不支持 | 原生支持 |
| 图片预览 | 需要额外配置 | 开箱即用 |
| 插件生态 | 丰富 | growing |
| 内存占用 | 较高 | 极低 |
如果你还在用 Ranger,强烈建议试试 Yazi。同样的操作逻辑,但体验上了好几个台阶。
下一篇预告:Fish Shell 配置指南