如何在 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
是 GNU Screen 的默认值,tmux 前身
- 它比默认
Ctrl-b
更容易输入,尤其是当您 remap caps lock to ctrl.
使用 Ctrl-a
的缺点是您不能在 bash 或 vim 中使用相同的密钥,但这很容易通过在 [=14 中进行以下绑定来解决=]:
bind-key 'C-a' send-prefix
因此,按 Ctrl-a
两次将向底层程序发送相同的字符(例如 bash 或 vim)。
如果你想使用控制分号,你可以试试AutoHotkey。
这是我的 tmux 和自动热键设置。
Tmux:
set-option -g prefix 'C-\'
AutoHotkey:
^;::
Send ^{\}
return
正如其他人所说,您无法绑定到 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 或重新启动。
对我有帮助的资源列表:
我想使用 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
是 GNU Screen 的默认值,tmux 前身- 它比默认
Ctrl-b
更容易输入,尤其是当您 remap caps lock to ctrl.
使用 Ctrl-a
的缺点是您不能在 bash 或 vim 中使用相同的密钥,但这很容易通过在 [=14 中进行以下绑定来解决=]:
bind-key 'C-a' send-prefix
因此,按 Ctrl-a
两次将向底层程序发送相同的字符(例如 bash 或 vim)。
如果你想使用控制分号,你可以试试AutoHotkey。
这是我的 tmux 和自动热键设置。
Tmux:
set-option -g prefix 'C-\'
AutoHotkey:
^;::
Send ^{\}
return
正如其他人所说,您无法绑定到 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 或重新启动。
对我有帮助的资源列表: