快速开始

安装好 Yazi 后,使用下面的命令启动程序:

  1. yazi

按 q 退出,按 F1 或 ~ 打开帮助菜单。

Shell wrapper

我们建议使用这个 y shell wrapper,它可以在退出 Yazi 时切换当前工作目录(current working directory)。

bash function y() { local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd command yazi "$@" --cwd-file="$tmp" IFS= read -r -d '' cwd < "$tmp" [ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd" rm -f -- "$tmp" } sh function y set tmp (mktemp -t "yazi-cwd.XXXXXX") command yazi $argv --cwd-file="$tmp" if read -z cwd < "$tmp"; and [ "$cwd" != "$PWD" ]; and test -d "$cwd" builtin cd -- "$cwd" end rm -f -- "$tmp" end sh def --env y [...args] { let tmp = (mktemp -t "yazi-cwd.XXXXXX") ^yazi ...$args --cwd-file $tmp let cwd = (open $tmp) if $cwd != $env.PWD and ($cwd | path exists) { cd $cwd } rm -fp $tmp } sh y() { set -- "$@" --cwd-file "$(mktemp -t yazi-cwd.XXXXXX)" command yazi "$@" shift $(($# - 1)) set -- "$(command cat < "$1"; printf .; rm -f -- "$1")" set -- "${1%.}" [ "$1" != "$PWD" ] && [ -d "$1" ] && command cd -- "$1" } elvish edit:add-var y~ {|@argv| use str use os use file var tmp = (os:temp-file) e:yazi $@argv --cwd-file=$tmp[name] var cwd = (slurp < $tmp) file:close $tmp os:remove $tmp[name] if (and (not-eq $cwd $pwd) (os:is-dir $cwd)) { cd $cwd } } powershell function y { $tmp = (New-TemporaryFile).FullName yazi.exe $args --cwd-file="$tmp" $cwd = Get-Content -Path $tmp -Encoding UTF8 if ($cwd -and $cwd -ne $PWD.Path -and (Test-Path -LiteralPath $cwd -PathType Container)) { Set-Location -LiteralPath (Resolve-Path -LiteralPath $cwd).Path } Remove-Item -Path $tmp } 创建文件 y.cmd,并将其放到你的 %PATH% 中。 cmd @echo off set tmpfile=%TEMP%\yazi-cwd.%random% yazi.exe %* --cwd-file="%tmpfile%" :: 如果文件不存在,则直接退出 if not exist "%tmpfile%" exit /b 0 :: 如果文件存在,则读取内容并切换目录 set /p cwd=<"%tmpfile%" if not "%cwd%"=="" if exist "%cwd%\NUL" ( cd /d "%cwd%" ) del "%tmpfile%" xonsh def _y(args): tmp = $(mktemp -t "yazi-cwd.XXXXXX") args.append(f"--cwd-file={tmp}") $[!yazi @(args)] with open(tmp) as f: cwd = f.read() import os if cwd != $PWD and os.path.isdir(cwd): cd @(cwd) rm -f -- @(tmp) aliases["y"] = _y

使用方法是:把这段函数复制到对应 shell 的配置文件中。

之后使用 y 而不是 yazi 来启动;按 q 退出后,你会看到 CWD 已发生变化。有时候你不想切换目录,这时按 Q 退出即可。

快捷键绑定

导航

在文件和目录之间导航时,你可以使用方向键 ←、↓、↑ 和 →, 也可以使用类似 Vim 的按键 h、j、k、l:

按键绑定 替代按键 操作
k ↑ 光标上移
j ↓ 光标下移
l → 进入当前悬停的目录
h ← 离开当前目录并进入其父目录

更多导航命令见下表。

按键绑定 操作
K 在预览中向上跳转 5 个单位
J 在预览中向下跳转 5 个单位
g ⇒ g 将光标移动到顶部
G 将光标移动到底部
z 通过 fzf Cd 到某个目录,或 reveal 某个文件
Z 通过 zoxide Cd 到某个目录
g ⇒ Space 通过交互式提示 Cd 到某个目录,或 reveal 某个文件

选择

要选择文件和目录,可以使用以下命令。

按键绑定 操作
Space 切换当前悬停文件/目录的选中状态
v 进入可视模式(选择模式)
V 进入可视模式(取消选择模式)
Ctrl + a 选择所有文件
Ctrl + r 反选所有文件
Esc 取消选择

文件操作

要对已选中的文件/目录进行操作,可以使用以下命令。

按键绑定 操作
o 打开选中的文件
O 以交互方式打开选中的文件
Enter 打开选中的文件
Shift + Enter 以交互方式打开选中的文件(某些终端暂不支持)
Tab 显示文件信息
y Yank 选中的文件(复制)
x Yank 选中的文件(剪切)
p 粘贴已 Yank 的文件
P 粘贴已 Yank 的文件(若目标已存在则覆盖)
Y 或 X 取消 Yank 状态
d 将选中的文件移到回收站
D 永久删除选中的文件
a 创建文件(以 / 结尾则创建目录)
r 重命名选中的文件
. 切换隐藏文件的可见性

更多文件操作命令见下表。

按键绑定 操作
; 运行 shell 命令
: 运行 shell 命令(阻塞直到结束)
- 为已 Yank 的文件创建绝对路径符号链接
_ 为已 Yank 的文件创建相对路径符号链接
Ctrl + - 为已 Yank 的文件创建硬链接

复制路径

要复制路径,可以使用以下命令。

说明:c ⇒ d 表示先按 c,再按 d。

按键绑定 操作
c ⇒ c 复制文件路径
c ⇒ d 复制目录路径
c ⇒ f 复制文件名
c ⇒ n 复制不带扩展名的文件名

过滤文件

按键绑定 操作
f 过滤文件

查找文件

按键绑定 操作
/ 查找下一个文件
? 查找上一个文件
n 跳转到下一个匹配
N 跳转到上一个匹配

搜索文件

按键绑定 操作
s 使用 fd 按名称搜索文件
S 使用 ripgrep 按内容搜索文件
Ctrl + s 取消正在进行的搜索

排序

要对文件/目录进行排序,可以使用以下命令。

说明:, ⇒ a 表示先按 ,,再按 a。

按键绑定 操作
, ⇒ m 按修改时间排序
, ⇒ M 按修改时间倒序排序
, ⇒ b 按创建时间排序
, ⇒ B 按创建时间倒序排序
, ⇒ e 按文件扩展名排序
, ⇒ E 按文件扩展名倒序排序
, ⇒ a 按字母顺序排序
, ⇒ A 按字母顺序倒序排序
, ⇒ n 按自然顺序排序
, ⇒ N 按自然顺序倒序排序
, ⇒ s 按大小排序
, ⇒ S 按大小倒序排序
, ⇒ r 随机排序

多标签页

按键绑定 操作
t 以当前工作目录创建新标签页
1、2、…、9 切换到第 N 个标签页
[ 切换到上一个标签页
] 切换到下一个标签页
{ 将当前标签页与前一个交换
} 将当前标签页与后一个交换
Ctrl + c 关闭当前标签页