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 模式下,按 Esc 或 Enter 即可返回 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。操作步骤如下:
- 按下
Ctrl+o打开模式菜单。 - 按下
c打开配置界面。 - 在配置界面中选择 "Change Modifiers" 选项。
- 选择你想要的键位预设(Default 或 Unlock-First)。
切换后立即生效,无需重启会话。这对于想在两种预设之间做对比尝试的用户来说非常方便。
四、模式速览
Zellij 的模式系统包含以下主要模式:
- Normal 模式:默认模式,所有键盘输入传递给 shell,可以正常输入命令。这是你大部分时间所处的状态。
- Locked 模式:锁定所有 Zellij 快捷键,仅接收普通文本输入。适合在运行某些会拦截快捷键的程序时使用。按
Ctrl+g解锁。 - Resize 模式:调整面板的大小。可以使用方向键或 h/j/k/l 增加、减小面板尺寸。
- Pane 模式:管理面板的创建、分割、关闭、导航和全屏切换。
- Tab 模式:管理标签页的创建、关闭、切换和重命名。
- Scroll 模式:在当前面板中滚动查看历史输出,支持上下翻页和搜索。
- Search 模式:在滚动缓冲区中搜索特定文本内容。
- Session 模式:管理会话的分离(detach)、恢复(attach)和退出。
- Move 模式:移动面板在布局中的位置。
每种模式进入后,状态栏会显示当前可用的快捷键提示,不需要死记硬背。这也是 Zellij 对新手友好的一个重要设计:你只需要记住几个入口快捷键,具体操作在状态栏中一目了然。