tmuxウィンドウの選択をf1-f12キーにバインドする方法は?

tmuxウィンドウの選択をf1-f12キーにバインドする方法は?

現在、私はtmuxウィンドウ間を移動するためにCB Nを使用しています。ここで、Nは私が望むウィンドウの番号です。 f1を押して最初のウィンドウをアクティブにし、f2を押して2番目のウィンドウをアクティブにできるようにfキーをマップする方法はありますか?

答え1

tmuxプレフィックスキーがあるかどうかにかかわらず、ほとんどのキーにコマンドをバインドできます。 [...] また、次の特殊キー名が許可されます: Up, [...] F1To F12, [...].

(源泉:man 1 tmux)

シェルで実行tmux:

for n in 1 2 3 4 5 6 7 8 9 10 11 12; do
   tmux bind-key -T root "F$n" select-window -t "$n"
done

バインディングを永久に作成するには、.tmux.confフォームに12行を編集して追加します。

bind-key -T root F1 select-window -t 1
# up to
bind-key -T root F12 select-window -t 12

メモ:

  • tmuxWindowsは列挙されますが、キー0はありませんF0。あなたのリクエストにはウィンドウ0が含まれていません。

  • F1..生成されるシーケンスは、主にF12端末エミュレータや対応する設定など、さまざまな要因によって異なります。 、、、、などを認識すると言えるので、端末設定をtmux調整する必要があります。たとえば、WindowsでPuTTYを介してDebianに接続するときは、次のように選択する必要があります。^[OP^[OQ^[OR^[OS^[[15~^[OTエクスタムR6パティエ設定端末鍵盤ファンクションキーとキーボード。私は気づいたVT400そしてVT100+部分的な仕事。反対方向に調整できるかどうかはわかりません(例:tmux端末に合わせて調整)。

  • 一部のプログラムは独自の目的でファンクションキーを使用しているため、ユーザーがそれtmuxをしたい場合があります。この例のスニペットは、 で作成して動作.tmux.confします。F1F2mcvim

    # Using function keys to select windows, except in mc or vim
    tmux_commands_with_function_keys="mc vim"
    bind-key -T root F1 \
       if-shell 'echo "#{tmux_commands_with_function_keys}" | grep -q "#{pane_current_command}"' \
          'send F1' 'select-window -t 1'
    bind-key -T root F2 \
       if-shell 'echo "#{tmux_commands_with_function_keys}" | grep -q "#{pane_current_command}"' \
          'send F2' 'select-window -t 2'
    

関連情報