Pi の設定、拡張、プラットフォーム設定、API リファレンス。

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

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 キーは従来のシーケンスに折りたたまれます。

拡張キーなし 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 形式を引き続きサポートします。