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

时间:2015-06-06 07:51:35

标签: tmux

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

 unbind-key C-b  
 set-option -g prefix C-\; 
我发现了一篇类似的文章。但它不是前缀。 tmux bind semicolon

顺便问一下,你最喜欢的前缀键是什么? :D你有推荐钥匙吗?

3 个答案:

答案 0 :(得分:12)

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

enter image description here

我在OS X上,当我在(终端和“桌面”程序)中输入Ctrl - ;时,我收到一个铃声,表示该字符无法识别或其他内容。

至于“最喜欢的”前缀键:从我看到阅读其他人的.tmux.conf文件时,Ctrl-a是最受欢迎的选择。这是有道理的,因为:

使用Ctrl-a的缺点是你不能在bash或vim中使用相同的密钥,但通过.tmux.conf中的以下绑定可以轻松解决这个问题:

bind-key 'C-a' send-prefix

这样,按两次Ctrl-a会将相同的字符发送到底层程序(例如bash或vim)。

答案 1 :(得分:2)

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

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

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

我正在使用美国版面,因此我在第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级冒号(移位修饰符)和b级3级(Ctrl修饰符) )。

Xkb中的级别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或重新启动。

帮助我的资源清单:

答案 2 :(得分:0)

如果要使用control-semicolon,可以尝试使用AutoHotkey。

这是我的tmux&amp;自动设置。

TMUX:

set-option -g prefix 'C-\'

AutoHotkey的:

^;::
    Send ^{\}
return