终端可视化文件管理工具:Yazi

小伙伴们,大家好,我是小溪,见字如面。面向TUI开发后越来越不喜欢打开编辑器了,但有时又需要查看项目目录结构、预览文件内容,为此就不得不打开编辑器就很不开心。逛帖子时发现一个不错的终端可视化文件管理工具,这里推荐给同样需要的小伙伴。

当前使用版本

Yazi 26.1.22

# 优势

  • 基于Rust开发安全和性能有保障

  • 默认支持文件、图片、视频等文件类型的预览

限制

  • 特殊格式的文件(pdf、压缩包等)预览需要额外安装对应依赖库

简介

Yazi 是一款基于 Rust 开发的现代终端文件管理器,凭借 全异步 I/O 架构 和多线程任务调度,实现了极速的响应能力,原生支持多种终端图像协议与强大的代码/媒体预览功能,是追求高性能与极致流畅体验的开发者利器。

官方文档:yazi-rs.github.io/docs/instal...

Github地址:github.com/sxyazi/yazi

安装

mac推荐使用Homebrew安装,官方建议的安装方式依赖了很多三方包,为了获得完整的功能体验,可以一次性安装所有核心依赖

sql 复制代码
$ brew install yazi ffmpeg-full sevenzip jq poppler fd ripgrep fzf zoxide resvg imagemagick-full font-symbols-only-nerd-font
$ brew link ffmpeg-full imagemagick-full -f --overwrite

也可以先安装主包,根据自己的需求后续再安装其他依赖包

shell 复制代码
$ brew install yazi

Arch Linux

shell 复制代码
$ sudo pacman -S yazi

Ubuntu/Debian

shell 复制代码
$ sudo apt install yazi

基本使用

命令行参数

在命令行终端输入 yazi -h 可以查看Yazi提供的所有命令参数,根据自己的需求选择,一般无需使用

启动

Yazi的启动也很简单,在命令行终端输入 yazi 即可启动

shell 复制代码
$ yazi

启动完成后预览界面如下:

快捷键

Yazi提供了非常多的快捷键,这里介绍一些常用的,更多快捷键可以查看官方文档:yazi-rs.github.io/docs/quick-...

导航 (Navigation):

  • k / ↑:向上移动光标

  • j / ↓:向下移动光标

  • l / →:进入选中的目录

  • h / ←:退回父目录

  • K:在预览中向上滚动 5 行

  • J:在预览中向下滚动 5 行

  • g:移动光标到顶部

  • G:移动光标到底部

  • z:通过 fzf 跳转目录或定位文件

复制 (Copy paths):

  • c c:复制文件路径

  • c d:复制目录路径

  • c f:复制文件名

  • c n:复制文件名(不含扩展名)

过滤与搜索 (Filter & Search):

  • f:过滤当前目录下的文件

  • /:查找下一个文件

  • ?:查找上一个文件

  • n:跳转到下一个查找结果

  • N:跳转到上一个查找结果

  • S:使用 ripgrep 按内容搜索

  • Ctrl + s:取消正在进行的搜索

排序 (Sorting):

  • , m / M:按修改时间排序(正序/倒序)

  • , b / B:按创建时间排序(正序/倒序)

  • , e / E:按扩展名排序(正序/倒序)

  • , a / A:按字母顺序排序(正序/倒序)

  • , n / N:按自然顺序排序(正序/倒序)

  • , s / S:按大小排序(正序/倒序)

  • , r:随机排序

使用快捷键【l /h/→/←】或者鼠标可以快速切换目录

使用快捷键【/】或者【f】可以对文件列表进行过滤,使用【ESC】退出过滤模式

使用快捷键【,】会弹出底部菜单,再按【Shift+s】可以按文件大小进行逆向排序

排序效果如下:

文件预览

Yazi支持文件预览,对于文本文件可以直接在右侧查看文本内容

使用快捷键【Enter】可以进入文件全屏预览模式

输入 i可以进入编辑模式,输入 :wq 保存退出,:q不保存退出文件编辑模式

图片预览

视频预览只能看到视频首帧预览,输入回车会打开系统播放器进行播放

默认没有安装PDF预览依赖包查看PDF时多半会出现这种问题

为了可以正常预览PDF,我们需要安装对应的poppler套件

shell 复制代码
$ brew install poppler

安装完成后再次查看就可以预览PDF了

预览压缩包也是一样的,如果没有安装对应依赖包,会报这个错误:Failed to start either 7zz or 7z. Do you have 7-zip installed?,想要预览压缩包需要安装7zip依赖包

shell 复制代码
$ brew install sevenzip

安装完成后即可正常预览压缩包

配置文件

官方文档:yazi-rs.github.io/docs/config...

Yazi的布局和展示支持配置,对Yazi默认的布局和展示不满意时,可以通过修改配置文件进行调整,配置默认路径:

  • macOS:~/.config/yazi/yazi.toml

  • Windows:%AppData%\yazi\config\yazi.toml

比如Yazi默认的3列布局比例为 1:3:4,我使用时感觉这个比例不是很合适,为了尽量多的看到文件预览的结果,我需要将第3列变大一些,我们可以修改 yazi.toml配置文件如下:

ini 复制代码
[mgr]
# 默认比例通常是 [1, 3, 4]
ratio = [1, 2, 5]

也就是预览部分占整体宽度的 5/8,修改完后重启Yazi效果如下:

Yazi还提供了其他可配置项

ini 复制代码
[mgr]
# 默认比例通常是 [1, 3, 4]
ratio = [1, 2, 5]
# 显示隐藏文件
show_hidden = true 
# 在文件列表右侧直接显示文件大小
linemode = "size"

[preview]
# 预览代码自动换行
wrap = "yes"

配置完成后效果如下:

常见问题

ailed to start either 7zz or 7z. Do you have 7-zip installed?

Yazi解析压缩包时默认会尝试调用 7zz,当提示这个时表明无法预览压缩包,需要安装 7zz依赖包,以Homebrew为例安装方式如下:

shell 复制代码
$ brew install sevenzip

Arch Linux

shell 复制代码
$ sudo pacman -S 7zip

Failed to start pdftopnm, error: No such file or directory (os error 2)

Yazi解析PDF时默认会调用poppler套件中的 pdftopnm 工具,当提示这个时表明无法预览pdf,需要安装 pdftopnm依赖包,以Homebrew为例安装方式如下:

shell 复制代码
$ brew install poppler

Arch Linux

shell 复制代码
$ sudo pacman -S poppler

友情提示

见原文:终端可视化文件管理工具:Yazi

本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。友情提示友情提示

相关推荐
Wesleyblue6 天前
Python解释器工作原理解析
命令行·环境变量·工作原理·脚本参数·python解释器
寒水馨6 天前
macOS下载、安装PowerShell-v7.6.4(附安装包powershell-7.6.4-osx-arm64.pkg)
macos·自动化·跨平台·shell·脚本·命令行·powershell
寒水馨6 天前
Linux下载、安装PowerShell-v7.6.4(附安装包powershell-7.6.4-linux-x64.tar.gz)
linux·跨平台·自动化运维·devops·命令行·powershell·脚本语言
其实防守也摸鱼14 天前
GitHub开源项目破圈方法论:从技术自嗨到生态共赢
服务器·数据库·学习·开源·github·命令行·linux系统
其实防守也摸鱼14 天前
前端应用的离线暂停更新策略:构建稳定可靠的渐进式部署方案
服务器·前端·数据库·学习·ai·命令行·linux系统
edwarddamon16 天前
SSH 指定端口建立隧道:打通内网访问完整教程
linux·命令行
栩栩云生17 天前
命令行的门槛从"会写"变成了"会拦"
安全·ai编程·命令行
阿虎儿21 天前
终端中的 ASCII 控制字符
命令行
HokKeung23 天前
用 Cobra 写一个像样的 Go 命令行工具
go·命令行