Zellij:一个更现代的 tmux 替代

2026-05-14

为什么需要另一个 tmux

Tmux 是终端复用器的标准答案——稳定、轻量、无处不在。但它也有明显的短板:开箱体验差、布局靠手动、远程需自搭。Zellij 用 Rust 重写了终端复用器的核心,重点补上了这些短板,但也付出了生态小、内存多的代价。

tmuxZellij
开箱体验★☆☆☆☆★★★★★
布局自动化★☆☆☆☆★★★★★
插件生态★★★★★★★☆☆☆
快捷键设计★★☆☆☆★★★★☆
浮动窗格★☆☆☆☆★★★★★
原生 Web★☆☆☆☆★★★★★

Zellij 不是来取代 tmux 的。它在开箱体验、布局自动化、浮动窗格、Web 远程上有明显优势,但插件生态和安装普及度暂时不如。

和 tmux 的核心差异

1. 免配置开箱

tmux 的默认状态栏简陋到几乎没有信息;Zellij 的默认 UI 包含:

  • 底部的选项卡和窗格导航
  • 会话名称
  • 模式指示器(Normal / Pane / Tab / Resize / Move / Scroll)
  • 鼠标完全支持(拖拽调整窗格、点选切换)

不需要写一行配置就能获得可用的体验。

2. 布局系统

tmux 没有原生的布局管理能力,需要用 tmuxinatortmuxp 等第三方工具。Zellij 内置了声明式布局:

layout {
    pane split_direction="vertical" {
        pane command="nvim" { args "."; }
        pane command="cargo" { args "watch" "-x" "test"; }
    }
    pane command="htop"
}

启动:zellij --layout dev.kdl

3. 插件生态

tmuxZellij
插件数量数百个个位数
写法shell 脚本Rust / WebAssembly
能做 UI有限(状态栏文本)完整的自定义渲染
事件驱动环境变量+ hook订阅式事件系统
学习成本低(会写 shell 就行)高(需要 Rust)
社区积累十年以上起步阶段

Zellij 的技术上限更高——插件能做自定义 UI、订阅事件、控制工作区——但生态积累差 tmux 十年。如果插件是选型的关键因素,目前 tmux 选择多得多。

4. 模式切换而不是前缀键

操作tmuxZellij
分屏Ctrl+B %Alt+n 直接新建
切换窗格Ctrl+B 方向键Alt+方向键Ctrl+P + h/j/k/l
新建标签Ctrl+B cCtrl+t n
搜索/滚动Ctrl+B [(进入 copy 模式)Ctrl+S 直接搜索,方向键滚动
断开Ctrl+B dCtrl+O 然后 d

Zellij 的策略是:不背前缀组合键,而是用单层前缀进入模式,然后在模式里用单字母操作。这对新用户更友好——直觉上更像 vim 的模式设计。

5. 内置浮动终端

写代码时,左边 vim 右边终端,屏幕刚刚好。突然想看个文档或跑条命令试试。tmux 的做法:再 split 一次,两边都变小;看完再 close,布局重新跳一次。

Zellij 的做法:按 Alt+f 打开浮动层,临时操作在上面做,关掉后底下布局没动过:

tmux 平铺 vim terminal cargo build cargo test Zellij 浮动 vim terminal cargo build cargo test 浮动窗格 htop

浮动 pane 持久化运行:隐藏后进程不中断,重新打开还在那里。按 Alt+f 切换显隐,浮动层打开后 Alt+n 在里面创建新 pane。

6. 原生 Web 客户端

这是 Zellij 和 tmux 在架构层面最大的区别。Zellij 内置了一个 Web 服务器,可以把 session 直接 serve 到浏览器。

启动:

zellij web

或者通过 Ctrl+o s 打开分享插件控制。配置文件设 web_server true 则每次启动自动开启。

然后打开 http://127.0.0.1:8082/<session-name> 就能在浏览器里操作终端。浏览器访问需要 token 认证,HTTPS 可配置。从 v0.44.0 开始,终端也能直接通过 HTTPS attach:

zellij attach https://example.com/my-session
zellij watch my-session   # 只读模式

这对几个场景特别有用:

  • 教学和演示:开一个只读分享链接,学生浏览器打开就能看,不用装任何东西
  • 远程工作:不需要 SSH 隧道、不需要 Nginx 反代,Zellij 自己就是 Web 服务器
  • 团队协作:多人 attach 同一 session,每人有自己的光标,互不影响
  • 手机临时检查:浏览器打开 session 看一眼就跑,不用掏电脑

tmux 想做同样的事需要自己搭 Web 服务、配 WebSocket 代理、管理证书。Zellij 把这些都内置了。

什么时候应该用 Zellij

  • 新用户:不想花时间配 tmux,希望装完就能用
  • 团队:用布局文件统一开发环境配置,git 管理共享
  • 远程/教学场景:Web 客户端和只读分享省掉一堆基础设施
  • 插件开发者:对 WASM 插件生态感兴趣,想在终端里嵌入自定义 UI

什么时候继续用 tmux

  • 服务器场景:tmux 是几乎所有发行版的默认包,而 Zellij 需要额外安装
  • 极简主义:tmux 的 binary 比 Zellij 小得多(~1MB vs ~20MB),只需要终端最基础的功能
  • 存量配置:已经有了完善的 .tmux.conf 和工作流,迁移成本大于收益

配置

零配置可用,但想改也不麻烦。配置用 KDL 格式,比 tmux 的 set -g 语法更结构化。主题内置 20+ 套(catppuccin、gruvbox、dracula、nord…),直接换名字就行。

总结

Zellij 不是 tmux 的替代品——它是终端复用器这个品类的一次重新设计。tmux 的定位是"工具",Zellij 的定位更接近"环境"。它牺牲了一点轻量性和普及度,换来了更好的开箱体验、声明式布局、插件生态和原生 Web 访问。

如果 tmux 工作流已经炉火纯青,不需要换。如果每次配 tmux 都觉得烦,或者想让团队成员复用一致的终端布局,Zellij 值得花一下午试试。

项目地址:github.com/zellij-org/zellij,Rust 编写,MIT 协议。

参考

https://blog.logfun.xyz/blog/feed.xml