Tmux

如何將 tmux 視窗選擇綁定到 f1-f12 鍵?

  • June 23, 2020

目前我使用 CB N 在 tmux 視窗之間移動,其中 N 是我想要的視窗的編號。有沒有辦法映射 f 鍵,以便我可以按 f1 啟動第一個視窗,按 f2 啟動第二個視窗等?

tmux允許將命令綁定到大多數鍵,有或沒有前綴鍵。

$$ … $$此外,還接受以下特殊鍵名:Up、$$ … $$ F1F12,$$ … $$.

(來源man 1 tmux:)

在裡面的shell中執行它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

筆記:

  • tmux列舉視窗,0但沒有F0鍵。您的要求不包括第 0 個視窗。
  • F1..生成的序列F12取決於很少的東西,主要取決於終端仿真器及其設置。我可以分辨tmux出辨識^[OP, ^[OQ, ^[OR, ^[OS, 但隨後^[[15~代替^[OT等等;所以你需要調整你的終端設置。例如,當從 Windows 通過 PuTTY 連接到 Debian 時,我需要在 PuTTY SettingsTerminalKeyboardThe Function keys and keypad中選擇**Xterm R6。我注意到VT400和*VT100+*部分工作。我不知道您是否可以反過來進行調整(即調整到您的終端)。tmux
  • 有些程序出於自己的目的使用功能鍵,您可能希望tmux讓它們使用。此範例片段用於.tmux.conf製作F1F2工作 in mcand vim
# 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'

引用自:https://unix.stackexchange.com/questions/594486