跳过正文

Yazi:用 Rust 重写的终端文件管理器

·278 字·2 分钟
[你的名字]
作者
[你的名字]
用 Sony A7R2 记录光影,用 NixOS & Emacs 构建工作流,探索大模型与 Agent 的边界。
目录
NixOS 工具链 - 这篇文章属于一个选集。
§ 2: 本文

Ranger 的精神续作,但用 Rust 写成,速度快了十倍。

Yazi 是一个基于 Rust 的终端文件管理器,目标是成为「终端下的 Finder」。它支持异步 I/O、并行预览、内置插件系统,体验非常现代化。

安装
#

在 NixOS 的 home.nixconfiguration.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" → 回车
直接跳转到 ~/Documents

4. 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 对比
#

特性RangerYazi
语言PythonRust
启动速度慢(~1s)极快(<50ms)
异步 I/O不支持原生支持
图片预览需要额外配置开箱即用
插件生态丰富growing
内存占用较高极低

如果你还在用 Ranger,强烈建议试试 Yazi。同样的操作逻辑,但体验上了好几个台阶。


下一篇预告:Fish Shell 配置指南

NixOS 工具链 - 这篇文章属于一个选集。
§ 2: 本文