tmux:无法绑定没有前缀的 C-{

tmux:无法绑定没有前缀的 C-{

我想使用与网络浏览器中相同的快捷方式在窗口之间跳转。

所以我尝试了

bind-key -n "C-{" previous-window
bind-key -n "C-}" next-window

bind-key -n "C-S-[" previous-window
bind-key -n "C-S-]" next-window

它不起作用。

我正在使用 macos、kitty 和 zsh。

答案1

没有所谓的角色^{

字节 0 到 0x1f 有 32 个 ^X 控制字符:^@, ^A.. ^Z, ^[, ^\, ^], ^^, ^_。也是^?字节 0x7f,ASCII 集中的最后一个字符。

请注意,终端^ICtrl+I和上Tab^[Ctrl+[和上Escape^MCtrl+M和上发送Enter。在 上Backspace,一些发送^H(BS)一些^?(DEL)。有些在+和+上发送^@(NUL)等。IOW,按下+ 某些键时发送的字符是控制字符(具有控制功能的字符,例如回车符,它将电传打字机的滑架返回到起始位置), ASCII 中只有有限的集合(总共 33 个)。Ctrl@CtrlSpaceCtrl^M

在我的英国 PC 上,键盘{位于Shift+上[,并且使用我的终端仿真器 (xterm) Ctrl+ Shift+[发送^[类似Ctrl+[Escdo 的内容。 AFAICT,kitty 在Ctrl+ Shift+上没有发送任何内容[

Ctrl您始终可以对其进行配置,以便在按+ Shift+ (或键盘上的等效键)时发送一些特定的字符或字符序列[,然后绑定到你的 tmux 配置中的一些东西。

例如,与:

map ctrl+shift+[ send_text all \x1b[23~
map ctrl+shift+] send_text all \x1b[24~

在您的~/.kitty/kitty.conf,中,kitty将发送与发送F11F12键相同的序列(\x1b这里又^[称为 ESC)。

您可以将其绑定到 tmux 配置中:

bind-key -n "F11" previous-window
bind-key -n "F12" next-window

相关内容