【发布时间】:2015-06-06 07:51:34
【问题描述】:
我想使用 Ctrl-分号作为 tmux 的前缀。但是我的 conf 不起作用。
unbind-key C-b
set-option -g prefix C-\;
我发现了一篇类似的文章。但这不是前缀。 tmux bind semicolon
【问题讨论】:
标签: tmux
我想使用 Ctrl-分号作为 tmux 的前缀。但是我的 conf 不起作用。
unbind-key C-b
set-option -g prefix C-\;
我发现了一篇类似的文章。但这不是前缀。 tmux bind semicolon
【问题讨论】:
标签: tmux
终端无法注册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)。
【讨论】:
正如其他人所说,您不能绑定到 Ctrl-;,因为它不是有效字符。
我喜欢这个前缀,因为当 CapsLock 重新映射到 Ctrl 时,它真的很容易按下。
对于 Linux,我的解决方法是在 xkb 级别将 Ctrl-; 重新映射到 Ctrl-B。
Xkb 是处理键盘布局的 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 或重新启动。
对我有帮助的资源列表:
【讨论】:
如果你想使用控制分号,你可以试试 AutoHotkey。
这是我的 tmux 和自动热键设置。
Tmux:
set-option -g prefix 'C-\'
自动热键:
^;::
Send ^{\}
return
【讨论】: