Zellij 用 session、tab 与 pane 组织终端工作。它采用模式化快捷键;是否比其他复用器更顺手、性能是否更好,需要结合实际负载判断。这里重点是会话的生命周期,而不是未经测试的性能比较。
zellij --help
# 以下是部分命令名称示意,以安装版本的帮助输出为准:
action convert-layout delete-session
attach convert-theme edit
-c -d -h
--config --data-dir --help
--config-dir --debug help
convert-config delete-all-sessions kill-all-sessions多开管理#
Zellij 主要通过 pane 和 tab 两个概念进行管理。pane 是分区,通过分不同的区块进行并行显示终端。tab 是标签页,和浏览器的一样,只显示当前 tab。每个 tab 可以开很多不同布局的 pane。
Session 管理#
是主要的功能。配合 Hyprland 使用时,tab 和 pane 不一定好使——Hyprland 直接 $SUPER + 方向键切换窗口。但 session 的核心价值不可替代:
# 新建 session
zellij --session project-demo
# attach session
zellij attach project-demo
# 列出会话
zellij list-sessionsSession 的五大核心价值#
1. 活跃会话保留滚动历史
- Scrollback 被 session 绑定:detach 再 attach,会话仍在运行时可以继续查看已有输出;缓冲区有容量限制,重要日志应另存文件。
- 对调试、长时间运行命令非常有用。
2. 状态保持(Resurrect)
- 每个 session 记录当前的 pane / tab 状态。
- 终端窗口关闭与会话进程结束不是同一回事。会话仍活着时可重新连接;进程已结束或系统重启后,resurrection 重建布局并可能重新运行命令,不恢复进程内存。
- 是否保存 pane 的输出由配置决定,也受历史保留范围限制。重新运行有副作用的命令前应确认;恢复布局不等于恢复未保存的编辑器内容或任意程序状态。
3. 多终端共享同一工作空间
- 可以在不同 Foot 窗口 attach 同一个 session。
- 场景:一个窗口用 vim,一个窗口看日志,共同查看和操作同一会话;各 pane 仍是独立进程,环境变量不会因此自动全局同步。
4. 项目/任务级管理
- 每个项目一个 session。
- 开新项目时新建 session,切回旧项目 attach 对应 session。
5. 简化 Hyprland + Foot 配合
- Hyprland 管窗口和布局 → 快速切换
- Zellij 管会话、布局与可配置的历史保留
- 是否把分屏交给合成器,取决于希望跨窗口切换还是在同一终端中组织 pane。
退出、分离与恢复之前#
离开一个窗口之前,先区分关闭客户端、detach 和终止 session。需要继续运行任务时使用当前键位帮助提供的 detach 动作;需要结束任务时则检查 pane 内进程并正常退出。不要把 kill-all-sessions 与 detach 混为一谈。
Zellij 不替代程序自己的保存、日志落盘或系统备份。重要状态先保存到文件,再决定是否依赖 session resurrection;跨机器访问仍需要受控的连接与认证。
参考与延伸
根据技术笔记重新整理,示例使用通用名称。