我想映射按键绑定
Ctrl+ Shift+ Tab在rxvt-unicode
。我设法按如下方式映射Ctrl+ Tab。对应的条目.Xresources
是
URxvt.keysym.Control-Tab: \033[27;5;9~
使用cat -v
确认此映射有效:
$ cat -v
^[[27;5;9~
^[[27;5;9~
然后可以将该序列vim
用于映射Ctrl+ 等应用程序
Tab。我希望以下.Xresources
条目能够正常工作。
URxvt.keysym.Control-Shift-Tab: \033[27;6;9~
但是,cat
没有显示正确的映射:
$ cat -v
^[[Z
如何建立Ctrl+ Shift+ Tab映射?
编辑
映射
URxvt.keysym.Control-ISO_Left_Tab: \033[27;6;9~
URxvt.keysym.Control-Shift-ISO_Left_Tab: \033[27;6;9~
表现相同。首先按Ctrl+ Tab,释放两个,然后按Return 两次,然后按Ctrl+ Shift+ Tab,释放所有,然后按Return 两次,得到以下输出:
$ cat -v
^[[27;5;9~
^[[27;5;9~
^[[27;6;9~↵
^[[27;6;9~M-bM-^FM-5
- Case Ctrl+ Tab:第一个返回使输入再次作为输出出现。
- Case Ctrl+ Shift+ Tab:第一个返回产生符号
↵
,第二个返回产生上一行。
下一个编辑:更多信息
如果您按ctrl-shift(在不按任何键的情况下释放两个键)然后在另一个窗口中输入,会发生什么情况?
在不同的urxvt窗口中?当我按下Ctrl + Shift并同时松开两个键时,左下角会出现一个明显的黄色框:KEYCAP PICTURE INSERT
MODE
它似乎来自urxvt,在其他应用程序中却没有出现。
甚至只是ctrl-shift-tab然后在另一个窗口中输入(我的意思不是rxvt,例如在gedit窗口或Web浏览器之类的东西中。)
我换了一行。
如果您按shift + ctrl + tab键(即向下移动,ctrl向下,tab,ctrl向上,上移)会发生什么,反之亦然(如果您正在这样做)?
在urxvt?
$ cat -v
shift+ctrl+tab then enter: ^[[27;6;9~
ctrl+shift+down: ↓
ctrl+shift+up: ↑
shift+down: ^[[b
shift+up: ^[[a
ctrl+down: ^[Ob
ctrl+up: ^[Oa
tab: | | (tab)
我正在尝试缩小范围,因为我认为您可能在xcompose中的“ ctrl + shift”上有某种映射。
不是我知道的,但你永远不会知道。
当您按“ Ctrl + Shift + Tab,输入”时,xev的输出是什么?
KeyPress event, serial 32, synthetic NO, window 0x4800001,
root 0xb4, subw 0x0, time 311734869, (567,395), root:(567,411),
state 0x0, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 35, synthetic NO, window 0x4800001,
root 0xb4, subw 0x0, time 311734971, (567,395), root:(567,411),
state 0x4, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 35, synthetic NO, window 0x4800001,
root 0xb4, subw 0x0, time 311736110, (567,395), root:(567,411),
state 0x5, keycode 23 (keysym 0xfe20, ISO_Left_Tab), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 35, synthetic NO, window 0x4800001,
root 0xb4, subw 0x0, time 311736494, (567,395), root:(567,411),
state 0x5, keycode 23 (keysym 0xfe20, ISO_Left_Tab), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 35, synthetic NO, window 0x4800001,
root 0xb4, subw 0x0, time 311736525, (567,395), root:(567,411),
state 0x5, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 35, synthetic NO, window 0x4800001,
root 0xb4, subw 0x0, time 311736525, (567,395), root:(567,411),
state 0x4, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 35, synthetic NO, window 0x4800001,
root 0xb4, subw 0x0, time 311737530, (567,395), root:(567,411),
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
" XLookupString gives 1 bytes: (0d) "
" XmbLookupString gives 1 bytes: (0d) "
XFilterEvent returns: False
KeyRelease event, serial 35, synthetic NO, window 0x4800001,
root 0xb4, subw 0x0, time 311737633, (567,395), root:(567,411),
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
" XLookupString gives 1 bytes: (0d) "
XFilterEvent returns: False
Ctrl-Tab
cat -v
输出所提到的顺序时,Ctrl-Shift-Tab
输出正确的顺序,^[[27;6;9~
但是下一次按键的解释却不像平常一样。在cat -v
输出Ctrl-Shift-Tab
+输入中,显示为^[[27;6;9~↵
,而不是两行^[[27;6;9~
(一行用于输入,一行用于输出)。这种映射在vim中不起作用。你还有其他主意吗?
xev
当您按“ Ctrl + Shift + Tab,输入”时,输出是什么?