Zellij 两种键位预设与模式系统

Zellij 使用模式化键位系统来组织快捷键,不同模式下相同的按键会执行不同的操作。为了适配不同用户的使用习惯,Zellij 提供了两种键位预设(Preset):Default 和 Unlock-First。本文将详解这两种预设的区别,以及 Zellij 的模式系统。

一、Default 预设(默认)

Default 预设是 Zellij 启动时使用的默认键位方案。它通过 Ctrl+字母 的方式快速进入各种模式:

快捷键 进入的模式 功能说明
Ctrl+p Pane(面板模式) 分割、关闭、导航面板等操作
Ctrl+t Tab(标签页模式) 新建、关闭、切换标签页
Ctrl+r Resize(调整大小模式) 调整面板和布局的尺寸
Ctrl+s Session(会话模式) 分离、恢复、管理会话
Ctrl+o 模式菜单 打开模式选择界面,可进入任意模式
Ctrl+g Locked(锁定模式) 锁定所有快捷键,仅接收普通输入

在任何非 Normal 模式下,按 EscEnter 即可返回 Normal 模式。Normal 模式是默认状态,此时所有键盘输入直接传递给面板中的 shell,就像在普通终端中一样工作。

二、Unlock-First 预设

Unlock-First 预设专为 Vim 用户设计。它的核心思路是:先按 Ctrl+g "解锁"进入功能模式,然后再按对应字母选择具体操作。这种两步操作的方式与 Vim 的 leader key 概念相似,能有效避免快捷键冲突。

在 Unlock-First 预设中:

  • Ctrl+g:解锁键,按下后进入模式选择状态
  • 解锁后按 p 进入 Pane 模式
  • 解锁后按 t 进入 Tab 模式
  • 解锁后按 r 进入 Resize 模式
  • 解锁后按 s 进入 Session 模式

要启用 Unlock-First 预设,可以在启动 Zellij 时指定配置:

zellij --config setup.default_mode "unlock-first"

或者将其写入 Zellij 的配置文件 config.kdl 中,使其永久生效:

// ~/.config/zellij/config.kdl
keybinds {
    default_mode "unlock-first"
}

三、运行时切换

如果你想在运行中临时切换键位预设,无需重启 Zellij。操作步骤如下:

  1. 按下 Ctrl+o 打开模式菜单。
  2. 按下 c 打开配置界面。
  3. 在配置界面中选择 "Change Modifiers" 选项。
  4. 选择你想要的键位预设(Default 或 Unlock-First)。

切换后立即生效,无需重启会话。这对于想在两种预设之间做对比尝试的用户来说非常方便。

四、模式速览

Zellij 的模式系统包含以下主要模式:

  • Normal 模式:默认模式,所有键盘输入传递给 shell,可以正常输入命令。这是你大部分时间所处的状态。
  • Locked 模式:锁定所有 Zellij 快捷键,仅接收普通文本输入。适合在运行某些会拦截快捷键的程序时使用。按 Ctrl+g 解锁。
  • Resize 模式:调整面板的大小。可以使用方向键或 h/j/k/l 增加、减小面板尺寸。
  • Pane 模式:管理面板的创建、分割、关闭、导航和全屏切换。
  • Tab 模式:管理标签页的创建、关闭、切换和重命名。
  • Scroll 模式:在当前面板中滚动查看历史输出,支持上下翻页和搜索。
  • Search 模式:在滚动缓冲区中搜索特定文本内容。
  • Session 模式:管理会话的分离(detach)、恢复(attach)和退出。
  • Move 模式:移动面板在布局中的位置。

每种模式进入后,状态栏会显示当前可用的快捷键提示,不需要死记硬背。这也是 Zellij 对新手友好的一个重要设计:你只需要记住几个入口快捷键,具体操作在状态栏中一目了然。

返回博客列表