既存のキーの使用

既存のキーの使用

私の現在のウィンドウのサイズ変更マッピングは次のとおりです。

bind Left resize-pane -L 5
bind Down resize-pane -D 5
bind Up resize-pane -U 5
bind Right resize-pane -R 6

ウィンドウのサイズを変更するには、毎回キーバインディングストロークと矢印キーを入力する必要があります。それは愚かなことです。一種のサイズ変更ウィンドウモードを開始するには、サイズが満足されるまでキー矢印をクリックしてからサイズ変更ウィンドウモードを終了します。

「パンを開始し、矢印キーモードでのみサイズを変更できます」と「このモード終了」のコマンド/キーマッピングは何ですか?

ありがとう

ベストアンサー1

既存のキーの使用

おそらく設定に何も追加する必要はありません。以下は、ウィンドウのサイズ変更のためのデフォルトのバインディングです(から:list-keys)。

bind-key -r -T prefix M-Up             resize-pane -U 5
bind-key -r -T prefix M-Down           resize-pane -D 5
bind-key -r -T prefix M-Left           resize-pane -L 5
bind-key -r -T prefix M-Right          resize-pane -R 5
bind-key -r -T prefix C-Up             resize-pane -U
bind-key -r -T prefix C-Down           resize-pane -D
bind-key -r -T prefix C-Left           resize-pane -L
bind-key -r -T prefix C-Right          resize-pane -R

この-rオプションはbind-key反復をサポートすることを意味します。プレフィックスの順序を再入力しなくても、サイズ変更が完了するまでC矢印またはM矢印を押し続けることができます。この繰り返しパターンがタイムアウトするまでの時間は、repeat_timeオプションで制御されます(デフォルトは500ms)。

プレフィックスバインディングなし

プレフィックスキーをすべて使用したくない場合は、別のbindテーブルを使用できます。 ~からキーバインディングマニュアルページの一部:

デフォルトでは(-Tなし)、キーは次の場所にバインドされます。プレフィックスキーテーブル。この表は、プレフィックスキーの後に押すキーの例です(例: "c"新しい窓内部にプレフィックステーブルなので、「Cb c」は新しいウィンドウを作成します)。これプレフィックスキーのないキーテーブル: 'c'を次にバインドする新しい窓内部にtable(廃止)は、一般的な「c」が新しいウィンドウを作成することを意味します。 -Nエイリアスです-ティー

ルートテーブルに直接バインドする:

bind-key -n C-Up resize-pane -U 5
bind-key -n C-Down resize-pane -D 5
bind-key -n C-Left resize-pane -L 5
bind-key -n C-Right resize-pane -R 5

コピーモードバインディング

サイズ変更には専用モードを使用することをお勧めします。 tmuxこれらのカスタムモードはサポートされていませんが、すでにサポートされています。コピーモード(デフォルトではプレフィックス入力を使用し、[左クリックを使用します。q)ここで、キーは通常プレフィックスなしで異なるバインディングを持つことができます。残念ながら、このモードでは複数のワードコマンド(パラメータ付きコマンドを含む)バインディングはサポートされていません。tmuxの問題215)。ただし、タスクを実行する前にテストできる解決策があります#{pane_in_mode}。この質問に対するコメントと上記の「プレフィックスバインディングなし」ソリューションに基づいています。

bind-key -n C-Up if-shell -F "#{pane_in_mode}" "resize-pane -U 5" "send-keys C-Up"
bind-key -n C-Down if-shell -F "#{pane_in_mode}" "resize-pane -D 5" "send-keys C-Down"
bind-key -n C-Left if-shell -F "#{pane_in_mode}" "resize-pane -L 5" "send-keys C-Left"
bind-key -n C-Right if-shell -F "#{pane_in_mode}" "resize-pane -R 5" "send-keys C-Right"

おすすめ記事