目前,我使用 CB N 在 tmux 窗口之间移动,其中 N 是我想要的窗口的编号。有没有办法映射 f 键,以便我只需按 f1 即可激活第一个窗口,按 f2 即可激活第二个窗口,等等?
答案1
tmux
允许命令绑定到大多数键,无论有或没有前缀键。 [...] 此外,还接受以下特殊键名称:Up、[...]F1
到F12
、[...]。
(来源: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 时,我需要选择Xterm R6在腻子中设置→终端→键盘→功能键和键盘。我注意到VT400和VT100+部分工作。我不知道你是否可以以相反的方式进行调整(即调整tmux
到你的终端)。有些程序将功能键用于其自身目的,您可能想让
tmux
它们使用。此示例片段为.tmux.conf
makeF1和F2work inmc
和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'