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-servertmuxKitty キーボードプロトコルが利用できない場合、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 ontmux はデフォルトで 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 設定です。
修正される内容
Section titled “修正される内容”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 を使うカスタムキーバインドに影響します。
extended-keys-format csi-uには tmux 3.5 以降(tmux -Vで確認)- 拡張キーをサポートするターミナルエミュレータ(Ghostty、Kitty、iTerm2、WezTerm、Windows Terminal)
tmux 3.2 から 3.4 では extended-keys-format csi-u を省略。Pi は tmux のデフォルト xterm modifyOtherKeys 形式もサポートします。