JINLOOPEST. 2026
浏览文档
PI DOCUMENTATION更新于

tmux 设置

Pi 可在 tmux 中运行,但 tmux 默认会剥离某些按键的修饰符信息。如果不进行配置, Shift+EnterCtrl+Enter 通常与普通的 Enter.

推荐配置

添加到 ~/.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 格式转发,例如:

  • 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;5u
  • Ctrl+D\x1b[100;5u
  • Ctrl+Enter\x1b[13;5u

Pi 支持两种格式,但 csi-u 是推荐的 tmux 设置。

此配置解决的问题

如果没有 tmux 扩展按键,修饰过的 Enter 键会退化为旧式序列:

按键无 extkeys使用 csi-u
进入\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 格式。

本文档内容同步自 PI 官方 GitHub 仓库。

查看源文件