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-Space
tmuxと入力してコンテンツを挿入します。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
特殊キー(ファンクションキー、カーソルキー、およびなどの編集キー)HomeEndtmux
screen
キーがこれらのカテゴリのいずれかに属していない場合はtmux
無視されます(破棄)。
したがって、...を使用するには、予想されるエスケープシーケンスの1つをshiftspace送信し、対応する事前tmux
定義された関数に従ってバインドする必要があります。
追加資料: