22k Star 的 superfile:Go 写的 TUI 文件管理器,能不能挤掉 Yazi 和 Ranger

阅读时长:14分钟

我曾经很长一段时间不理解「终端文件管理器」这个物种。

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.dev Star 数: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。

代码是逻辑的诗,工具是效率的翼。选对工具,比多学十个技巧值钱。


相关阅读

© 2026 softon.top

本站已稳定运行 281 天 9 小时 · 132 篇文章

使用 Hugo 构建 主题 Stack 由 Jimmy 设计 由 softon 魔改

最近构建时间:2026-10-09 17:43:58 CST