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
tmuxPi は、キティ キーボード プロトコルが利用できない場合に、拡張キーのレポートを自動的に要求します。 extended-keys-format csi-u では、tmux は変更されたキーを CSI-u 形式で転送します。これは最も信頼性の高い構成です。 extended-keys-format オプションには tmux 3.5 以降が必要です。
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 セットアップです。
これで修正される内容
tmux 拡張キーがないと、変更された Enter キーは従来のシーケンスに折りたたまれます。
| 鍵 | 拡張キーなし | 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 を使用するカスタム キーバインドに影響します。
要件
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 形式を引き続きサポートします。