本文为社区中文翻译(依据 MIT 协议),阅读英文原文 →。译文可能滞后于上游更新。

tmux 设置

推荐配置

~/.tmux.conf 中添加:

set -g extended-keys on
set -g extended-keys-format csi-u

然后彻底重启 tmux:

tmux kill-server
tmux

在没有 Kitty 键盘协议可用时,Pi 会自动请求扩展按键上报。配置 extended-keys-format csi-u 后,tmux 以 CSI-u 格式转发修饰键组合,这是最可靠的配置。extended-keys-format 选项需要 tmux 3.5 或更高版本。

为什么推荐 csi-u

只配置:

set -g extended-keys on

时,tmux 默认使用 extended-keys-format xterm。应用请求扩展按键上报后,修饰键组合以 xterm modifyOtherKeys 格式转发,例如:

使用 extended-keys-format csi-u 时,同样的按键转发为:

两种格式 Pi 都支持,但 tmux 环境推荐 csi-u

能修复什么

没有 tmux 扩展按键时,修饰的 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.2 到 3.4 请省略 extended-keys-format csi-u;Pi 也支持 tmux 默认的 xterm modifyOtherKeys 格式。