Yazi
官网,集成在终端中的基于Rust开发、开源(GitHub,38.1K Star,866 Fork)跨平台文件管理器,具有异步I/O和高度可扩展性,支持所有macOS下Finder能实现的操作,比如搜索、预览图片和文件、批量处理、vim操作等。官方文档。
功能特性:
- 完全异步支持:所有I/O操作均为异步,CPU任务分散到多个线程中执行,从而充分利用可用资源。
- 强大的异步任务调度与管理:提供实时进度更新、任务取消以及内部任务优先级分配功能。
- 内置支持多种图像协议:集成Überzug++和Chafa,几乎覆盖所有终端。
- 内置代码高亮和图像解码功能:结合预加载机制,大大加快图像和普通文件的加载速度。
- 并发插件系统:用户界面插件(重写大部分用户界面)、功能插件、自定义预览器/预加载器/检测器/获取器;只是一些Lua代码。
- 虚拟文件系统:远程文件管理,自定义搜索引擎。
- 数据分发服务:基于客户端-服务器架构构建(无需额外服务器进程),与基于Lua的发布-订阅模型集成,实现跨实例通信和状态持久化。
- 包管理器:只需一条命令即可安装插件和主题,并保持其最新状态,或将其固定到特定版本。
- 与
ripgrep、fd、fzf、zoxide集成 - 类Vim输入/选择/确认/命令/通知组件,支持自动补全
cd路径 - 多标签支持、跨目录选择、可滚动预览(适用于视频、PDF、存档文件、代码、目录等)
- 批量重命名/创建、存档文件提取、可视化模式、文件选择器、Git集成、挂载管理器
- 主题系统、鼠标支持、回收站、自定义布局、CSI u、OSC 52
快捷键/按键:
j/k或方向键:上下移动h/l:返回上级/进入目录Space:选中y:复制x:剪切p:粘贴/:过滤搜索.:显示/隐藏隐藏文件q:退出
实战
提供多种安装方式:
bash
scoop install yazi
# 可选依赖
scoop install ffmpeg 7zip jq poppler fd ripgrep fzf zoxide resvg imagemagick
winget install sxyazi.yazi
winget install Gyan.FFmpeg 7zip.7zip jqlang.jq oschwartz10612.Poppler sharkdp.fd BurntSushi.ripgrep.MSVC junegunn.fzf ajeetdsouza.zoxide ImageMagick.ImageMagick
Yazi配置文件(~/.config/yazi/config.toml)示例:
toml
[manager]
# 使用 fd 进行文件搜索
file_searcher = "fd"
# 使用 ripgrep 进行内容搜索
content_searcher = "rg"
[preview]
# 使用 bat 进行文本预览
text_previewer = "bat"
# 使用 fzf 进行选择预览
selector = "fzf"
[navigation]
# 集成 zoxide 智能跳转
cd_command = "z"
[search]
# 实时搜索配置
live_search = true
live_search_delay = 300 # 毫秒
# ripgrep 高级选项
rg_options = [
"--smart-case",
"--hidden",
"--follow",
"--glob=!.git/*"
]
# fd 高级选项
fd_options = [
"--hidden",
"--exclude=.git",
"--type=f",
"--follow"
]
[preview]
# fzf 预览配置
fzf_preview = "bat --style=numbers --color=always {}"
fzf_bindings = [
"ctrl-f:preview-page-down",
"ctrl-b:preview-page-up",
"ctrl-d:preview-half-page-down",
"ctrl-u:preview-half-page-up"
]
[keymap]
# 自定义快捷键
"ctrl-s" = "search:content" # 使用 ripgrep 搜索内容
"ctrl-f" = "search:file" # 使用 fd 搜索文件
"ctrl-z" = "nav:zoxide" # 使用 zoxide 跳转
nnn
开源(GitHub,21.6K Star,804 Fork)终端文件管理器。
功能优势:
- 体积极小:编译后的二进制文件通常只有200KB左右;
- 运行时内存:内存占用更是低得惊人,通常不到3.5MB;
- 终端退出时会自动停留在当前位置,而不是
/home根目录,可继续完成未完成任务或操作。经常使用ssh的开发者们,肯定遇到服务器不稳定,连接被断开的场景; - 磁盘分析:直观地展示出各个目录的大小占用;
- 插件系统:可实现文件预览、解压文档、挂载远程目录等高级功能。
实战
安装
bash
brew install nnn
sudo apt install nnn
Superfile
官网,开源(GitHub,16.8K Star,441 Fork)界面炫酷、精致且轻量级终端文件管理神器,基于Go和Bubble Tea构建,
从GitHub release页面下载,解压后的spf文件复制到/usr/local/bin目录下即可使用spf命令。
命令行安装:
bash
bash -c "$(curl -sLo- https://superfile.netlify.app/install.sh)"
powershell -ExecutionPolicy Bypass -Command "Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://superfile.netlify.app/install.ps1'))"
界面分为文件区、侧边栏区、处理区、元数据区,通过不同的按键可以切换区域,再按一次按键可以回到文件区。
操作:
- 切换至侧边栏区:
S - 切换至处理区:
P - 切换至处理区:
M - 上下移动光标:上下键
- 进入文件夹:→键或回车
- 退出文件夹:←
- 搜索:/
- 收藏某个文件夹到侧边栏:
Shift+P - 修改文件排序:
0,支持按名称、大小、修改时间等 - 创建文件:
Ctrl+N键,结尾带/为目录,不带为文件 - 编辑文件:
E,打开nano编辑器,编辑完成后使用Ctrl+X键退出 - 拷贝文件使用
Ctrl+C键,剪切文件Ctrl+X键,删除文件Ctrl+D键,重命名文件Ctrl+R`键 - 退出应用:ESC
lf
https://github.com/gokcehan/lf
9.1K Star,360 Fork
基于Go+Roff
Ranger
Python开发、基于终端/控制台的开源(GitHub,4.2K Star,329 Fork)文件管理器,将Vim风格引入终端文件导航,提供一种快速、极简的文件系统浏览方式。提供简洁的curses界面展示目录层级;内置rifle智能文件启动器,能根据文件类型自动选择打开程序。VI风格的操作键位,会用Vim就会用Ranger。
核心功能包括:多列显示、文件预览、常用文件操作(创建/修改权限/复制/删除/重命名)、Vim风格控制台和快捷键、退出后自动切换Shell目录、标签页和书签、支持鼠标。
常用快捷键:
j/k:向上向下l:进入当前所选目录或打开文件h:返回上级目录g:导航r:打开y:复制d:剪切或删除p:粘贴o:排序z:更改设置M:行模式+, -, =:设置文件访问权限
实战
可选依赖:W3M-img/ueberzug(图片预览)、ffmpeg(视频缩略图)、libsixel(终端图片渲染)。
bash
# macOS
brew install ranger
# Ubuntu/Debian
sudo apt install ranger
# Arch Linux
sudo pacman -S ranger
# PyPI安装(推荐pipx隔离环境)
pipx install ranger-fm
# 或直接pip
pip install ranger-fm
安装成功后,输入ranger命令,使用方向键或hjkl导航,回车打开文件,q退出。启动后可看到三栏布局:左边是父目录,中间是当前目录,右边是文件预览。
walk
基于Go语言、开源(GitHub,3.6K Star,108 Fork)终端文件管理器。
安装:
bash
brew install walk
pkg_add walk
go install github.com/antonmedv/walk@latest
curl https://raw.githubusercontent.com/antonmedv/walk/master/install.sh | sh
拓展
ripgrep
fd
fzf
fx
Zoxide
项目主页,基于Rust开发、开源(GitHub,36.7K Star,822 Fork)终端工具,解决cd进入目录繁琐易忘等麻烦,统计用户进入目录的频次等数据,安装成功后输入z src就能直接进入源码目录,支持模糊匹配路径,一行命令安装,支持bash、zsh、fish、PowerShell等各种主流Shell。