本文汇总了 Zellij 使用中常见的兼容性问题、常见问题解答,以及默认键位速查表和命令行速查表。作为整个 Zellij 系列的收官篇,本文旨在为你提供一份随时可查阅的快速参考。
一、已知兼容性问题
字体要求(Nerd Fonts)
Zellij 的默认状态栏和标签栏使用了 Nerd Fonts 图标字体来显示各种图标。如果你的终端字体不支持 Nerd Fonts,可能会看到乱码或方框字符。
解决方案:安装并配置 Nerd Fonts 字体。
# 下载并安装 Nerd Font(以 JetBrains Mono 为例)
# 访问 https://www.nerdfonts.com/ 下载
# 或使用 Homebrew 安装
brew install --cask font-jetbrains-mono-nerd-font
# 安装后在终端设置中将字体改为 "JetBrainsMono Nerd Font"
如果不想安装 Nerd Fonts,可以使用 simplified_ui 选项来禁用图标显示(见下方"简化 UI"部分)。
macOS 的 Alt 键设置
在 macOS 上,默认情况下 Option(Alt)键会被终端模拟器拦截用于输入特殊字符。Zellij 大量使用 Alt 键作为快捷键前缀,因此需要配置终端将 Option 键视为 Alt 键。
iTerm2 设置:Preferences -> Profiles -> Keys -> Left Option Key: Esc+
macOS Terminal.app 设置:偏好设置 -> 描述文件 -> 键盘 -> 勾选"将 Option 用作 Meta 键"
Kitty 终端边框问题
Kitty 终端在显示 Zellij 的面板边框时可能出现对齐问题。这是因为 Kitty 的单元格宽度和 Zellij 的预期不一致。
解决方案:在 Kitty 配置中添加:
# kitty.conf
allow_remote_control yes
shell_integration no
鼠标模式冲突
Zellij 启用鼠标模式后,终端中运行的一些程序(如 vim、less 等)的鼠标支持可能会与 Zellij 冲突。
解决方案:按住 Shift 键可以临时绕过 Zellij 的鼠标捕获,直接将鼠标事件传递给终端程序。这是一个通用技巧,适用于所有终端多路复用器。
剪贴板配置
在某些系统上,Zellij 的剪贴板复制功能可能不工作,尤其是在通过 SSH 远程连接时。
解决方案:确保系统安装了剪贴板工具:
# Linux(X11)
sudo apt install xclip
# Linux(Wayland)
sudo apt install wl-clipboard
# macOS 自带 pbcopy/pbpaste,无需额外安装
Backspace 和 Ctrl+H
某些终端将 Backspace 键和 Ctrl+H 发送相同的字符序列,这可能导致 Zellij 误判按键。如果你的 Backspace 在 Zellij 中不正常工作,可以在配置中显式绑定:
keybinds {
normal {
bind "Backspace" { /* 你的绑定 */ }
}
}
样式化下划线问题
某些终端不支持样式化下划线(如曲线、双线等),导致显示异常。如果你的终端出现下划线显示问题,可以禁用样式化下划线:
// config.kdl
simplified_ui true
简化 UI 选项
simplified_ui 选项可以禁用所有可能不兼容的 UI 元素:
// config.kdl
simplified_ui true
启用后会:移除所有 Nerd Font 图标、简化边框样式、使用纯文本替代特殊符号。适合在不支持高级终端特性的环境中使用。
二、常见问题解答
如何避免快捷键冲突?
Zellij 的默认前缀键是 Ctrl+O。如果你与其他程序冲突,可以在配置中修改:
// 将前缀改为 Ctrl+A
keybinds {
normal {
bind "Ctrl+A" { SwitchToMode "Pane"; }
}
}
UI 占用太多空间怎么办?
使用 compact-bar 替代默认的 tab-bar 和 status-bar,或者使用精简模式启动:
zellij options --simplified-ui true
精简模式下如何查看快捷键提示?
在精简模式下,按 Ctrl+O 进入对应模式后,底部状态栏会显示当前模式可用的快捷键。也可以使用 zellij setup --check 查看所有键位绑定。
乱码字符怎么处理?
乱码通常是因为终端字体不支持 Nerd Fonts 图标。参见上方"字体要求"部分,或启用 simplified_ui。
如何复制粘贴?
三种方式:
- 按住
Shift键后使用鼠标选择文本,然后用终端自带的复制功能(通常是Ctrl+Shift+C) - 进入 Copy 模式:
Ctrl+O然后按[,使用方向键选择文本后按 Enter 复制 - 在 Copy 模式中使用
/搜索并跳转到特定位置
浮动面板有什么用途?
浮动面板适合临时性的、不需要长期占据屏幕空间的任务,例如:查看文档、运行一次性命令、显示系统监控信息、临时编辑文件。浮动面板可以被移动、调整大小和关闭,不影响底层布局。
支持 Windows 吗?
Zellij 原生支持 Linux 和 macOS。Windows 用户可以通过 WSL(Windows Subsystem for Linux)使用 Zellij。在 WSL2 中使用时,建议使用 Windows Terminal 以获得最佳体验。
如何恢复 tmux 用户习惯?
Zellij 提供了 tmux 兼容的键位预设:
zellij --layout tmux
或永久启用:
// config.kdl
default_layout "tmux"
升级后如何不丢失会话?
Zellij 的会话复活功能可以在升级后恢复会话。确保在配置中启用了自动保存:
// config.kdl
auto_save_delay "5"
升级后使用 zellij attach 即可自动恢复之前的会话布局。
编辑回滚缓冲区不工作?
如果 Ctrl+O 然后按 e(编辑回滚缓冲区)不工作,确保你配置了 EDITOR 环境变量:
export EDITOR="vim" # 或 nano、code 等
如何从会话内切换会话?
进入 Session 模式(Ctrl+O 然后按 w),然后使用方向键或搜索选择目标会话并按 Enter 切换。
三、默认键位速查表
Normal 模式
| 快捷键 | 操作 |
|---|---|
Ctrl+O | 进入 Pane 模式 |
Ctrl+T | 进入 Tab 模式 |
Ctrl+R | 进入 Resize 模式 |
Ctrl+S | 进入 Session 模式 |
Ctrl+G | 锁定/解锁界面 |
Ctrl+P | 进入插件模式 |
Alt+[ | 进入 Copy 模式 |
Alt+<方向键> | 切换面板焦点 |
Alt+[ / Alt+] | 切换标签页 |
Ctrl+Q | 退出 Zellij |
Pane 模式
| 快捷键 | 操作 |
|---|---|
n | 新建面板(向下分割) |
p | 切换面板焦点 |
d | 向下分割面板 |
r | 向右分割面板 |
x | 关闭当前面板 |
f | 切换全屏 |
z | 切换面板框架 |
w | 启动浮动面板 |
e | 编辑回滚缓冲区 |
h/j/k/l | 移动焦点(左/下/上/右) |
Esc / Enter | 返回 Normal 模式 |
Tab 模式
| 快捷键 | 操作 |
|---|---|
n | 新建标签页 |
x | 关闭当前标签页 |
r | 重命名标签页 |
s | 切换到相邻标签页 |
1-9 | 跳转到指定编号的标签页 |
[ / ] | 上一个/下一个标签页 |
Esc / Enter | 返回 Normal 模式 |
Resize 模式
| 快捷键 | 操作 |
|---|---|
h/j/k/l | 向左/下/上/右调整大小 |
H/J/K/L | 大幅调整大小(2 倍步长) |
= | 均匀分配面板大小 |
+ | 增加调整步长 |
- | 减小调整步长 |
Esc / Enter | 返回 Normal 模式 |
Session 模式
| 快捷键 | 操作 |
|---|---|
w | 会话管理器 |
d | 分离当前会话 |
y | 关闭当前会话 |
s | 保存布局快照 |
l | 加载布局快照 |
Esc / Enter | 返回 Normal 模式 |
四、命令行速查表
基本命令
| 命令 | 说明 |
|---|---|
zellij | 启动新会话 |
zellij -s 名称 | 启动命名会话 |
zellij -l 布局 | 使用指定布局启动 |
zellij -d | 以分离模式启动 |
zellij ls | 列出所有会话 |
zellij attach 名称 | 附加到会话 |
zellij a -c 名称 | 附加或创建会话 |
zellij kill-session 名称 | 关闭指定会话 |
zellij kill-all-sessions | 关闭所有会话 |
运行和编辑
| 命令 | 说明 |
|---|---|
zellij run -- cmd | 在新面板中运行命令 |
zellij run -n 名称 -- cmd | 命名面板运行命令 |
zellij run -d -- cmd | 向下分割面板运行 |
zellij run -r -- cmd | 向右分割面板运行 |
zellij run -f -- cmd | 在浮动面板中运行 |
zellij run --blocking -- cmd | 阻塞运行(等待完成) |
zellij edit 文件 | 在面板中打开编辑器 |
zellij edit -d 文件 | 向下分割面板编辑 |
Action 命令
| 命令 | 说明 |
|---|---|
zellij action write 字符 | 向当前面板写入字符 |
zellij action write-chars 文本 | 写入文本字符串 |
zellij action send-keys 按键 | 发送按键序列 |
zellij action close-pane | 关闭当前面板 |
zellij action new-pane | 新建面板 |
zellij action toggle-fullscreen | 切换全屏 |
zellij action dump-screen | 输出屏幕内容 |
zellij action list-panes | 列出所有面板 |
zellij action list-tabs | 列出所有标签页 |
zellij action rename-tab 名称 | 重命名标签页 |
zellij action switch-mode 模式 | 切换输入模式 |
监控命令
| 命令 | 说明 |
|---|---|
zellij subscribe --pane-id N terminal_1 | 监控面板输出 |
zellij subscribe --pane-id N --history | 包含历史输出 |
zellij watch 会话名 | 只读监视会话 |
设置命令
| 命令 | 说明 |
|---|---|
zellij setup --check | 检查配置并显示当前设置 |
zellij setup --dump-config | 输出默认配置 |
zellij setup --generate-completion bash | 生成 shell 补全 |
zellij setup --generate-auto-start bash | 生成自动启动脚本 |
快捷别名
| 别名 | 完整命令 |
|---|---|
zellij ls | zellij list-sessions |
zellij a | zellij attach |
zellij e | zellij edit |
zellij r | zellij run |
Web 客户端
| 命令 | 说明 |
|---|---|
zellij web | 启动 Web 服务器 |
zellij web-token create --read-write | 创建读写令牌 |
zellij web-token create --read-only | 创建只读令牌 |
zellij web-token list | 列出所有令牌 |
zellij web-token revoke ID | 吊销指定令牌 |
五、全部可用操作列表
面板操作
| 操作名 | 说明 |
|---|---|
NewPane | 创建新面板(指定方向:上/下/左/右) |
CloseFocus | 关闭当前焦点面板 |
MoveFocus | 移动焦点到指定方向的面板 |
FocusPane | 聚焦到指定 ID 的面板 |
ToggleFocusFullscreen | 切换当前面板全屏 |
TogglePaneFrames | 切换面板边框显示 |
SwapPanes | 交换两个面板的位置 |
MovePane | 移动面板到指定方向 |
标签页操作
| 操作名 | 说明 |
|---|---|
NewTab | 创建新标签页 |
CloseTab | 关闭当前标签页 |
GoToTab | 跳转到指定编号的标签页 |
GoToNextTab | 切换到下一个标签页 |
GoToPreviousTab | 切换到上一个标签页 |
RenameTab | 重命名当前标签页 |
SwapTab | 交换标签页位置 |
浮动面板操作
| 操作名 | 说明 |
|---|---|
NewFloatingPane | 创建浮动面板 |
ToggleFloatingPanes | 显示/隐藏所有浮动面板 |
MoveFloatingPane | 移动浮动面板位置 |
ResizeFloatingPane | 调整浮动面板大小 |
PinFloatingPane | 固定/取消固定浮动面板 |
滚动与搜索操作
| 操作名 | 说明 |
|---|---|
ScrollUp | 向上滚动一行 |
ScrollDown | 向下滚动一行 |
ScrollUpHalfPage | 向上滚动半页 |
ScrollDownHalfPage | 向下滚动半页 |
ScrollToTop | 滚动到顶部 |
ScrollToBottom | 滚动到底部 |
Search | 进入搜索模式 |
SearchMatchDown | 跳到下一个搜索匹配 |
SearchMatchUp | 跳到上一个搜索匹配 |
模式与会话操作
| 操作名 | 说明 |
|---|---|
SwitchToMode | 切换到指定输入模式 |
DumpScreen | 输出面板屏幕内容 |
EditScrollback | 在编辑器中打开回滚缓冲区 |
Detach | 分离当前会话 |
SwitchSession | 切换到另一个会话 |
KillSession | 关闭指定会话 |
Quit | 退出 Zellij |
Write | 向面板写入字符 |
WriteChars | 向面板写入文本 |
Resize | 调整面板/布局大小 |
Run | 在面板中运行命令 |
LaunchOrFocusPlugin | 加载或聚焦插件 |
以上涵盖了 Zellij 的全部主要操作。将这些速查表与前面文章中介绍的配置、布局、脚本编程和插件开发知识结合起来,你就可以充分发挥 Zellij 的强大功能。如果遇到本文未覆盖的问题,可以查阅 Zellij 官方文档或社区论坛获取更多帮助。