$ terminals _

zellij

Rust 编写的现代终端复用器

🌐 官网 GitHub brew install zellij

简介

Zellij 是一个用 Rust 编写的现代终端复用器,定位为 tmux 和 screen 的替代品。它最大的亮点是开箱即用的友好体验:界面底部始终显示可用的快捷键提示,新用户无需背诵任何按键组合即可上手操作,同时也为高级用户提供了丰富的自定义选项。

Zellij 引入了独特的布局系统和插件架构,支持使用 WebAssembly(WASM)编写插件来扩展功能。它原生支持浮动面板和堆叠面板,提供了比传统终端复用器更灵活的窗口管理方式。内置的会话管理功能让你可以轻松保存和恢复工作环境,而 Rust 的内存安全保证也让 Zellij 在稳定性方面表现出色。

安装

# macOS
brew install zellij

# Cargo
cargo install zellij

# 下载预编译二进制
curl -L https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz | tar xz

核心特性

  • 快捷键提示: 界面底部实时显示可用操作,学习成本极低
  • 浮动面板: 支持浮动窗口,灵活叠放管理
  • 布局系统: 可定义和保存自定义布局模板
  • WASM 插件: 使用 WebAssembly 编写插件扩展功能
  • 会话管理: 内置会话持久化,断线后自动恢复
  • 多模式切换: 面板模式、标签模式、调整模式等多种操作模式

使用示例

# 启动 zellij
zellij

# 使用指定布局启动
zellij --layout compact

# 创建命名会话
zellij -s my-project

# 列出所有会话
zellij list-sessions

# 附加到已有会话
zellij attach my-project

# 如果会话存在则附加,否则创建新会话
zellij attach --create my-project

# 终止指定会话
zellij kill-session my-project

# 终止所有会话
zellij kill-all-sessions

# 生成自动补全脚本
zellij setup --generate-completion zsh

常用快捷键

Ctrl+p          进入面板模式
  方向键 / hjkl   在面板间切换
  n              新建面板
  d              关闭当前面板
  f              全屏切换

Ctrl+t          进入标签模式
  n              新建标签
  方向键          切换标签
  r              重命名标签

Ctrl+n          进入调整模式
  方向键          调整面板大小

Ctrl+s          进入滚动模式
Ctrl+o          进入会话模式
  d              分离会话
  w              会话管理器

典型场景

场景一:开箱即用,无需记忆快捷键

相比 tmux 需要背诵大量按键,zellij 底部常驻提示栏:

# 直接启动,底部状态栏实时显示可用操作
zellij

# 新手只需记住:
# Ctrl+p → 面板操作(分割、切换)
# Ctrl+t → 标签操作(新建、关闭)
# Ctrl+o → 会话操作(分离、管理器)

场景二:用布局文件定义开发环境

将常用工作布局保存为文件,项目专属一键启动:

# ~/.config/zellij/layouts/dev.kdl
layout {
    pane split_direction="vertical" {
        pane size="60%" command="nvim"
        pane split_direction="horizontal" {
            pane command="bash" {
                args "-c" "npm run dev"
            }
            pane
        }
    }
    pane size=1 borderless=true {
        plugin location="zellij:status-bar"
    }
}
# 用自定义布局启动
zellij --layout ~/.config/zellij/layouts/dev.kdl

场景三:浮动面板临时调出工具

不打断当前工作流,临时弹出 lazygit 或监控面板:

# 在 zellij 内:
# Ctrl+p → w → 打开浮动面板
# 输入 lazygit 或 btop,用完后 Ctrl+p → w → 关闭浮动面板
# 主工作区完全不受干扰

推荐搭配

  • neovim — 在 Zellij 面板中运行 Neovim
  • lazygit — 在浮动面板中快速打开 Git 管理
  • btop — 在独立面板中监控系统资源