在 tmux 中绑定命令而不使用前缀键

Iva*_*van 52 terminal keyboard-shortcuts gnu-screen tmux

是否可以将 tmux 命令绑定到组合键并直接使用它而无需先按前缀?

我觉得C-b + n切换窗格太麻烦,所以我想知道我是否可以绑定C-1,例如切换到窗格 #1。

或者也许有一种方法可以让终端模拟器中的快捷方式在C-b + 1我按下时发送C-1

谢谢!

Aut*_*tic 53

对于您的示例,请使用:

bind-key -n C-1 select-pane -t 1
Run Code Online (Sandbox Code Playgroud)

-n用于绑定键的说法,这意味着没有前缀。

  • @Ivan:控制击键的常用代码来自 ASCII。ASCII 没有定义 C-1..C-9 的代码。标准的 ASCII 控制字符是 C-@、Ca..Cz、C-[、C-\、C-]、C-^、C-_ 和 C-?。大多数终端只是不支持大多数修改过的按键的不同代码(尽管许多终端支持箭头键和功能键的一些修饰符)。您可能最好使用“F1”代替“C-1”(还要注意窗格编号从 0 开始,而不是 1:将 F1 绑定到选择窗格 0、F2 到 1 等)。 (8认同)

小智 7

我对这里接受的答案有异议。

\n\n

根据tmux(1)-n is an alias for -T root。因此,包含-n实际上并不意味着“没有前缀”,而是意味着该命令将绑定到根表,这是“不推荐”的。

\n\n

tmux(1):

\n\n
\n

根表用于在没有前缀键的情况下按下的键:\n 将 \xe2\x80\x98c\xe2\x80\x99 绑定到根表中的新窗口(不推荐)意味着普通 \xe2\x80\x98c\xe2 \x80\x99 将创建一个新窗口

\n
\n\n

这似乎是在说:

\n\n

bind -n c new-window

\n\n

按下时会创建一个新窗口c,确实如此。

\n\n

作者“不推荐”这句话中的冷幽默是,考虑到“c”是英语中第三常见的字母,“c”在平均 tmux 会话中当然会被按下很多次。

\n\n

再举个例子,这里是快速 tmux 窗口切换(使用 PageUp/PageDown 键):

\n\n
unbind NPage\nunbind PPage\nbind -n PPage previous-window\nbind -n NPage next-window\n
Run Code Online (Sandbox Code Playgroud)\n