如何在 tmux 中使用 Ctrl-分号作为前缀?

How to use Ctrl-semicolon for prefix in tmux?

我想使用 Ctrl-分号作为 tmux 的前缀。但是我的 conf 不起作用。

 unbind-key C-b  
 set-option -g prefix C-\; 

我找到了一篇类似的文章。但它不是前缀。 tmux bind semicolon

终端无法注册 Ctrl-; 击键。这不是一个有效的角色。如果您查看下面 ascii table 中的控制字符,您会看到 Ctrl-; 不在列表中。

我在 OS X 上,当我在(终端和 "desktop" 程序中)输入 Ctrl - ; 时,我听到铃声,表示该字符未被识别或东西。

至于"favorite"前缀键:从我看别人的.tmux.conf文件来看,Ctrl-a是最流行的选择。这是有道理的,因为:

使用 Ctrl-a 的缺点是您不能在 bash 或 vim 中使用相同的密钥,但这很容易通过在 [=14 中进行以下绑定来解决=]:

bind-key 'C-a' send-prefix

因此,按 Ctrl-a 两次将向底层程序发送相同的字符(例如 bash 或 vim)。

如果你想使用控制分号,你可以试试AutoHotkey。

这是我的 tmux 和自动热键设置。

Tmux:

set-option -g prefix 'C-\'

A​​utoHotkey:

^;::
    Send ^{\}
return

正如其他人所说,您无法绑定到 Ctrl-;,因为它不是有效字符。

我喜欢这个前缀,因为当 CapsLock 重新映射到 Ctrl 时,按下它真的很容易。

对于 Linux,我的解决方法是在 xkb 级别将 Ctrl-; 重新映射到 Ctrl-BXkb 是处理键盘布局的 Xorg 子系统。

我使用的是 us 布局,所以我修改了第 42 行的 /usr/share/X11/xkb/symbols/us

key <AC10> {     [ semicolon,    colon           ]       };

//  key <AC10> {     [ semicolon,    colon           ]       };
key <AC10> {                                                  
   type="BABEL_CONTROL_LEVEL3",                               
   symbols[Group1]= [ semicolon, colon, b ]                   
};                                                            

这告诉 Xkb 为 AC10(C 行中的第 10 个按钮)生成第 1 级的分号(无修饰符),第 2 级的冒号(移位修饰符)和第 3 级的 b( Ctrl 修饰符).

Xkb 中的 Level 3 一般不会被 Ctrl 激活,为此我创建了一个新的键类型,我称之为 BABEL_CONTROL_LEVEL3。你需要把它的定义放在 /usr/share/X11/xkb/types/pc:

type "BABEL_CONTROL_LEVEL3" {
    modifiers = Shift+Control;
    map[Shift] = Level2;
    map[Control] = Level3;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Control";
};

您需要重新启动 X 或重新启动。

对我有帮助的资源列表: