无法将无前缀命令专门绑定到大写字母(CH 与 Ch)

无法将无前缀命令专门绑定到大写字母(CH 与 Ch)

我的 中有以下无前缀的键绑定tmux.conf

bind -n C-J swap-window -t -1
bind -n C-K swap-window -t +1
bind -n C-H select-window -p
bind -n C-L select-window -n

这些绑定由预期的 CH、CL 等激活。问题是它们也由小写字母(即 Ch、Cl 等)激活,这会干扰命令行键绑定。为什么这不能按预期工作?

答案1

大多数终端只是不区分CtrlCtrlShift——结果输入总是具有相同的未设置位(0x6fo或 0x4f O→ 0x0f ^O)。

您可以使用并按下和 的stty cbreak; xxd -c1各种组合来验证这一点;您会看到程序将所有内容视为。CtrlOCtrlShiftO0x0f

答案2

显然,一些终端仿真器通过 .Xdefaults/.Xresources 提供了修改特定键码的选项。

我目前在我的 .Xdefaults 中有以下内容并且它可以与 urxvt 完美配合:

URxvt*keysym.Shift-Prior: string:\002[
URxvt*keysym.Shift-Up: string:cd ..\n
URxvt*keysym.Shift-Down: string:cd --\n

这里

相关内容