我的 中有以下无前缀的键绑定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
大多数终端只是不区分Ctrl和CtrlShift——结果输入总是具有相同的未设置位(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
看这里