我曾经很长一段时间不理解「终端文件管理器」这个物种。
ls、cd、mv、cp 我一年打上万次,肌肉记忆快到不需要思考。装个 TUI 上去,看似多了个花哨界面,实际上要多学一套快捷键,还多一层进程。这不叫效率工具,这叫多此一举。
直到那天我在服务器上要在四个目录之间倒腾一批日志:/var/log/nginx/、/opt/app/logs/、~/analysis/、~/report/。终端开了四个 tab,一顿 cd + ls 之后我发现自己已经忘了刚才那个 nginx 目录是哪个 tab 了。
那一刻我才明白:GUI 文件管理器解决的问题不是「操作文件」,是「同时看到多个文件夹的状态」。 双开、三开、四开面板,眼睛能一眼扫过去,脑子不用维护一个「我当前在哪个目录」的栈。
这个问题在 SSH 场景下没有 GUI 兜底。于是我开始翻 TUI 文件管理器。装了三个:superfile、Yazi、Ranger。今天这篇专门聊 superfile —— 一颗 GitHub 22813 star、v1.6.0、Go 写的新贵。
项目地址:
github.com/yorukot/superfile官网:superfile.devStar 数:22813(截至 2026-08-25) 最新版本:v1.6.0(2026-06-07 发布) License:MIT
superfile 到底是个什么东西
先说人话版本:一个能让你在终端里像用 macOS Finder / Windows 文件资源管理器一样操作文件的工具。
技术版本:Go 1.21+ 写的 TUI 文件管理器,UI 层用的是 charmbracelet 家的 Bubble Tea 框架 —— 这个框架在 Go 圈是 TUI 事实标准,出了 gum、glow、crush 一堆漂亮东西,superfile 是同一家族的血脉。
跑起来长这样:
$ spf
一条命令进去,你会看到左边是文件树,中间是当前目录的文件列表,右边是预览面板 —— 光标停在图片文件上,右侧直接把图缩略图渲染在终端里;停在 Markdown 上,直接语法高亮预览;停在代码文件上,也是彩色高亮。
这不是给运维老哥用的。这是给「装了一堆 dotfiles、每天在 kitty / WezTerm / Ghostty 里过日子」的现代开发者用的。它的定位从命名就能看出来 —— super 是溢美之词,file 是本分。它不追求 nnn 那种「二进制小到能塞进救援 U 盘」的极简,也不学 Ranger 那种「Vim 键位敬老院」的传统。它想做的是:让终端里的文件夹长得跟你的 GUI 一样漂亮。
三个真正值得聊的功能
一、多面板:这才是核心杀手锏
TUI 文件管理器里,绝大多数都是「单面板 + Tab 切换」的思路 —— Ranger 是这样,Yazi 早期也是。superfile 的默认布局是可任意分裂的多面板:
Ctrl+N新开一个面板Tab在面板之间切换Ctrl+W关闭当前面板- 面板之间可以直接复制、移动、对比文件
回到我开头那个场景 —— 四个日志目录来回跳,用 superfile 就是四个面板并排,光标扫一遍全看清楚。这一个功能就值回学习成本。
启动时也可以直接把要打开的目录列出来:
spf ~ ~/proj1 ~/Pictures /tmp
四个面板一次开好。
二、图片预览:请先看清楚你的终端支不支持
这里必须泼一盆冷水。superfile 官网列了一张终端兼容表,我把关键的抄下来:
| 终端 | 协议 | 图片预览 |
|---|---|---|
| kitty | Kitty protocol | ✅ 支持 |
| WezTerm | Kitty protocol | ✅ 支持 |
| Ghostty | Kitty protocol | ✅ 支持 |
| iTerm2 | Inline images | ❌ 不支持 |
| Konsole | Inline images | ❌ 不支持 |
| VSCode 集成终端 | Inline images | ❌ 不支持 |
| Tabby / Hyper | Inline images | ❌ 不支持 |
| foot / Black Box | Sixel | ❌ 不支持 |
| Windows Terminal | - | ❌ 不支持 |
看清楚这个坑:只有走 Kitty graphics protocol 的三个终端能真图片预览。iTerm2 明明有 inline images 协议、Windows Terminal 也在支持 Sixel,但 superfile 目前都还没适配。
如果你的终端不在名单里,光标停在 .jpg 上,你会看到什么?—— 一个 ANSI 色块拼出来的低分辨率马赛克。superfile 叫这个是 “graceful fallback”,用户看到的实际感受是「哦,跟不预览也差不多」。
这是我给 superfile 打分时扣分最多的地方。官方 GitHub Discussion(#1196)里,「多协议图片预览」已经是排名最高的用户诉求。目前的解法是等 kitty 协议之外的 inline image 协议一个一个补进来 —— 从我翻到的开发者回复看,这活儿在做,但没时间表。
结论:如果你还在用 iTerm2 或 Windows Terminal,别为了图片预览来 superfile。要么先换终端(kitty / WezTerm / Ghostty 都是好东西),要么去用 Yazi(它的图片预览兼容协议多得多)。
三、20+ 内置主题:颜值这事儿不能省
superfile 内置 20+ 主题:Catppuccin、Nord、Tokyo Night、Dracula、Gruvbox、Rose Pine —— 你能想到的流行主题基本齐了。
这条乍看是花活儿。但如果你已经花了半天时间给 Neovim、Alacritty、tmux 调 Catppuccin Mocha 一套配色,那 superfile 直接给你现成的、能对齐整套 dotfiles 视觉体系的主题 —— 这就叫存量兼容红利。
对比一下:Ranger 想改配色,你得手写 rifle.conf + colorscheme.py;Yazi 好一点,Lua 写 theme.toml;superfile 是配置文件里一行:
theme = "catppuccin-mocha"
对比选型:superfile vs Yazi vs Ranger
这三个是当前 TUI 文件管理器赛道最主要的选手。我三个都装了、都用了至少一周。核心差异我压缩成一张表:
| 维度 | superfile | Yazi | Ranger |
|---|---|---|---|
| 语言 | Go + Bubble Tea | Rust + Lua | Python |
| UI 风格 | 现代 · 多面板 | 现代 · 双栏 | 经典 · Vim 味 |
| 图片预览 | ❌ 仅 Kitty 协议 | ✅ Kitty/Sixel/iTerm2/Konsole 全支持 | ⚠️ 靠外部脚本(Uberzug) |
| I/O 模型 | 同步 | 全异步 | 同步 |
| 大目录性能(10k+ 文件) | 一般 | 优秀 | 明显卡 |
| 主题生态 | 20+ 内置 | Lua 主题 | Python 手写 |
| 插件系统 | 起步中 | Lua + 官方 pkg manager | Python 生态成熟 |
| 学习曲线 | 简单 | 中等 | 陡(Vim 前提) |
| 二进制体积 | 中 | 中 | 需 Python 环境 |
| GitHub star | 22.8k | ~33k | ~16k |
Yazi 在纯技术指标上更强:Rust 异步 I/O、图片预览兼容广、大目录不卡、Lua 插件系统成熟。如果只看性能和图片预览,Yazi 是当前 2026 年的 TUI 文件管理器天花板。
Ranger 是老兵:Python 生态成熟、Vim 键位、rifle.conf 玩得溜的老用户根本换不动。但它是同步 I/O,几万文件的目录会明显卡;图片预览要外挂 Uberzug,配起来一整晚。
superfile 的位置在哪?
一句话:入门门槛最低、UI 观感最好、对「不想学 Vim 键位、又不想为图片预览折腾一晚上」的开发者最友好。
具体点:
- 你是从 GUI 文件管理器迁移过来的(macOS Finder、Total Commander 双面板迷)→ 选 superfile,多面板体验直接对齐 GUI 直觉
- 你是资深 Vim / Ranger 用户、
hjkl已经是本能反射 → 别换,Ranger / Yazi 更符合你 - 你要处理巨大目录(几十万文件) → 选 Yazi,异步 I/O 优势明显
- 你在 kitty / WezTerm / Ghostty 里过日子 → superfile 完全够用,且颜值最高
- 你在 Windows Terminal 或 iTerm2 里 → 图片预览这条腿断,考虑 Yazi
谁不该用 superfile
写文章总喜欢吹优点,我反着来 —— 三种人别浪费时间:
1. SSH 到几十台服务器的运维
你要的是「装机秒速部署、二进制 <1MB、离线可用」。superfile 的 Go 二进制虽然不算大,但对比 nnn 的 C 代码还是重。这个场景 nnn 永远是王。
2. 老终端遗产用户
你的 iTerm2 已经陪你走过五年、快捷键、状态栏、主题全定制好了 —— 你不会为了 superfile 的图片预览换终端,也不会容忍它降级到 ANSI 马赛克。你的替代方案是 Yazi。
3. Vim 深度用户
你的 muscle memory 已经写死在 hjkl + y + p 上。superfile 的默认键位是自造的一套(可完全 remap,但要花时间)。你换掉 Ranger 的心理成本比迁移出 Neovim 还高。
如果以上三条你都不是 —— 那你就是 superfile 的目标用户。
5 分钟上手:跨平台安装
superfile 提供了全平台一键脚本,我把命令抄下来(选一条跑就行):
macOS + Linux(bash 脚本):
bash -c "$(curl -sLo- https://superfile.netlify.app/install.sh)"
Homebrew:
brew install superfile
Arch Linux:
sudo pacman -S superfile
Windows(PowerShell):
powershell -ExecutionPolicy Bypass -Command "Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://superfile.netlify.app/install.ps1'))"
Nix:
nix profile install github:yorukot/superfile#superfile
装完之后直接:
spf
即可启动。第一次运行会在 ~/.config/superfile/(Linux/macOS)或 %APPDATA%\superfile\(Windows)下生成配置文件夹,主题、快捷键、pinned 目录都在这。
值得记住的默认键位
superfile 的键位不难,我列几个第一天就要会的:
| 操作 | 键位 |
|---|---|
| 上下移动 | ↑ ↓ 或 k j |
| 进入 / 退出目录 | → ← 或 l h |
| 新开面板 | Ctrl+N |
| 切换面板 | Tab |
| 关闭面板 | Ctrl+W |
| 复制 | c |
| 剪切(移动) | x |
| 粘贴 | p |
| 删除 | d |
| 重命名 | r |
| 多选 | Space |
| 模糊搜索 | / |
| Pin 当前目录 | P |
| 帮助 | ? |
hjkl 默认就绑好了,Vim 党迁移成本不高。真正需要重新学的其实是面板管理那几个 Ctrl 组合键。
我的最终结论
superfile 不是 TUI 文件管理器里技术最强的,那是 Yazi。它也不是生态最深的,那是 Ranger。
但 superfile 是目前把「颜值 + 多面板 + 跨平台易上手」三件事同时做到位的唯一选手。22k star 不是白攒的 —— 它的绝大多数用户,大概率就是我这种「不想学 Vim 键位、又厌倦了 GUI 文件管理器、又不想折腾一晚上配置」的开发者。
一周之后我的选择是:superfile 留在装机脚本里,Yazi 保留在需要爆炸性能的场景,Ranger 已经卸载。
如果你只想装一个终端文件管理器,且你的终端是 kitty / WezTerm / Ghostty 之一 —— 直接装 superfile,别犹豫。
如果你还在用 iTerm2 或 Windows Terminal —— 先解决终端问题,或者先看看 Yazi。
代码是逻辑的诗,工具是效率的翼。选对工具,比多学十个技巧值钱。