tmux 配置
Pi 可在 tmux 内运行,但 tmux 默认会剥离某些按键的修饰键信息。未配置时,Shift+Enter 和 Ctrl+Enter 通常与 plain Enter 无法区分。
添加到 ~/.tmux.conf:
set -g extended-keys onset -g extended-keys-format csi-u然后完全重启 tmux:
tmux kill-servertmux当 Kitty 键盘协议不可用时,Pi 会自动请求扩展按键报告。使用 extended-keys-format csi-u 时,tmux 以 CSI-u 格式转发修饰键,这是最可靠的配置。extended-keys-format 选项需要 tmux 3.5 或更高版本。
为何推荐 csi-u
Section titled “为何推荐 csi-u”仅设置:
set -g extended-keys on时,tmux 默认使用 extended-keys-format xterm。当应用请求扩展按键报告时,修饰键以 xterm modifyOtherKeys 格式转发,例如:
Ctrl+C→\x1b[27;5;99~Ctrl+D→\x1b[27;5;100~Ctrl+Enter→\x1b[27;5;13~
使用 extended-keys-format csi-u 时,相同按键转发为:
Ctrl+C→\x1b[99;5uCtrl+D→\x1b[100;5uCtrl+Enter→\x1b[13;5u
Pi 支持两种格式,但 csi-u 是推荐的 tmux 配置。
未启用 tmux extended keys 时,修饰 Enter 键会折叠为旧式序列:
| 按键 | 无 extkeys | 使用 csi-u |
|---|---|---|
| Enter | \r | \r |
| Shift+Enter | \r | \x1b[13;2u |
| Ctrl+Enter | \r | \x1b[13;5u |
| Alt/Option+Enter | \x1b\r | \x1b[13;3u |
这会影响默认快捷键(Enter 提交、Shift+Enter 换行)以及任何使用修饰 Enter 的自定义快捷键。
- tmux 3.5 或更高版本以使用
extended-keys-format csi-u(运行tmux -V检查) - 支持扩展按键的终端模拟器(Ghostty、Kitty、iTerm2、WezTerm、Windows Terminal)
使用 tmux 3.2 至 3.4 时,省略 extended-keys-format csi-u;Pi 仍支持 tmux 默认的 xterm modifyOtherKeys 格式。