tmuxキーバインディングでShift-Spaceを使用できますか?

tmuxキーバインディングでShift-Spaceを使用できますか?

o私は現在tmuxウィンドウのサイズを変更し、隣接するSpaceウィンドウのサイズを変更するために(プレフィックス)を使用しました。

bind o      resize-pane -Z
bind Space  if-shell -F '#{window_zoomed_flag}' 'last-pane' 'select-pane -t :.+; resize-pane -Z'

Space代わりにandを使用するように変更したいと思いますShift-Space

bind Space    resize-pane -Z
bind S-Space  if-shell -F '#{window_zoomed_flag}' 'last-pane' 'select-pane -t :.+; resize-pane -Z'

tmuxサーバーを再起動して実行しましたtmux list-keys。新しいバインディングがリストされ、最初のバインディングは期待どおりに機能しますが、2番目のバインディングのS-Spaceためにtmuxに渡すのに問題があります。

iTerm(私はOSXを使用しています)とデフォルト設定を使用すると修飾子は無視されるため、 と入力する⇧ShiftSpace⇧Shifttmux<prefix> S-Space<prefix> Space

実際、Vimキーマップで使用できる^[[32;2uようにエスケープシーケンスを送信するようにiTermを設定しました。この設定を有効にしたら、⇧ShiftSpaceコマンドラインに<prefix> S-Spacetmuxと入力してコンテンツを挿入します。32;2u

cat -v内部tmuxを使用してデバッグを試みます。

^[[32;2u    # S-Space
32;2u       # <prefix> S-Space

tmuxがthisとして認識する別のエスケープシーケンスがありますかS-Space、それとも動作させる他の方法はありますか?

tmuxの設定については読みましたterminal-overridesが、制御シーケンスでのみ機能しているようです。C-a関連性がある場合は、これをプレフィックスキーとして使用しています。

ベストアンサー1

短い:なし

shiftlong:+は、キーマップを変更しない限りspace送信されますspace

他の特殊キー()に加えて、キーボードから送信された文字を変更したい場合がEnterあります。shiftこれはないいつもケース。あなたが知っているほとんどの内容は以下に基づいています。xterm、たとえば、およびshift(またはcontrol)を使用して別のエスケープシーケンスを作成します。altmeta

tmuxこれらのxtermキーを「知っています」(そしてそのキーを使用できるように設定できるモードもあります)。そうでない(設定されていない場合)、キーが既知のxterm-keys特殊キー(ファンクションキー、カーソルキー、およびなどの編集キー)HomeEndtmuxscreen

キーがこれらのカテゴリのいずれかに属していない場合はtmux無視されます(破棄)。

したがって、...を使用するには、予想されるエスケープシーケンスの1つをshiftspace送信し、対応する事前tmux定義された関数に従ってバインドする必要があります。

追加資料:

おすすめ記事