在不使用前缀键的情况下在tmux中绑定命令


45

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

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

也许有一种方法可以使C-b + 1我按终端仿真器中的快捷方式发送C-1

谢谢!


1
我只是用set -g prefix C-a
grawity 2011年

我也是,我只是将Cb放在我的问题上,因为这是默认设置。
伊凡

Answers:


45

例如,使用:

bind-key -n C-1 select-pane -t 1

bind-key的-n参数没有前缀。


1
谢谢!它说,这几乎完成了,除了它不识别数字unknown key: C-1。如果我使用字母,它将起作用。您知道我如何指定数字键吗?
伊万

6
@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,依此类推)。
克里斯·约翰森

2

我对这里接受的答案有疑问。

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

tmux(1)

根表用于不带前缀键按下的键:将“ c”绑定到根表中的new-window(不推荐)意味着普通的“ c”将创建一个新窗口

这似乎是在说:

bind -n c new-window

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

作者的短语“不推荐”中的幽默是这样的事实,因为“ c”是英语中第三常见的字母,因此在平均tmux会话中当然会多次按下“ c”

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

unbind NPage
unbind PPage
bind -n PPage previous-window
bind -n NPage next-window
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.