PiPi
快速开始
使用 Pi
  • 简体中文
  • English
快速开始
使用 Pi
  • 简体中文
  • English
  • 从这里开始

    • 快速开始
    • 使用 Pi
    • 提供商
    • 安全
    • 容器化
    • 设置
    • 键位绑定
    • 会话
    • 压缩与分支总结
  • 自定义

    • 扩展
    • 技能
    • 提示词模板
    • 主题
    • Pi 包
    • 自定义模型
    • 自定义提供商
  • 参考

    • 会话文件格式
  • 编程式使用

    • SDK
    • RPC 模式
    • JSON 事件流模式
    • TUI 组件
  • 平台设置

    • Windows 设置
    • Termux(Android)设置
    • tmux 设置
    • 终端设置
    • Shell 别名
  • 开发

    • 开发

tmux 设置

Pi 可以在 tmux 中运行,但 tmux 默认会从某些按键中剥离修饰键信息。未配置时,Shift+Enter 和 Ctrl+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
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 格式。

最近更新:: 2026/7/6 09:32
Contributors: seepine
Prev
Termux(Android)设置
Next
终端设置