我想使用Ctrl-semicolon作为tmux的前缀。但我的conf不起作用。
unbind-key C-b
set-option -g prefix C-\;
我发现了一篇类似的文章。但它不是前缀。
tmux bind semicolon
顺便问一下,你最喜欢的前缀键是什么? :D你有推荐钥匙吗?
答案 0 :(得分:12)
终端无法注册Ctrl-;
击键。这不是一个有效的角色。如果您查看下面的ascii表中的控制字符,您会看到Ctrl-;
不在列表中。
我在OS X上,当我在(终端和“桌面”程序)中输入Ctrl - ;
时,我收到一个铃声,表示该字符无法识别或其他内容。
至于“最喜欢的”前缀键:从我看到阅读其他人的.tmux.conf
文件时,Ctrl-a
是最受欢迎的选择。这是有道理的,因为:
Ctrl-a
是GNU Screen,tmux前身Ctrl-b
容易得多,尤其是remap caps lock to ctrl时。使用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-B
。
Xkb是处理键盘布局的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