Key-Mapping

在 rxvt-unicode 中映射 Control-Shift-Tab

  • May 19, 2019

我想將鍵綁定 Ctrl++Shift映射Tabrxvt-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:第一次返回使輸入再次顯示為輸出。
  • 案例Ctrl++ ShiftTab第一次返回產生符號,第二次返回產生上面顯示的最後一行。

下一次編輯:更多資訊

如果您按下 ctrl-shift(不按任何鍵同時釋放兩者),然後在另一個視窗中輸入,會發生什麼情況?

在不同的 urxvt 視窗中?當我按下 Ctrl+Shift 並鬆開兩個鍵時,左下角出現一個刺眼的黃色框:KEYCAP PICTURE INSERT MODE它似乎來自 urxvt,它不會出現在其他應用程序中。

或者甚至只是 ctrl-shift-tab 然後在另一個視窗中輸入(我的意思不是 rxvt,比如在 gedit 視窗或網路瀏覽器或其他東西中。)

我得到一條新線。

如果按 shift+ctrl+tab 會發生什麼

$$ i.e. shift down, ctrl down, tab, ctrl up, shift up $$相反,反之亦然,如果那是你正在做的?

在 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, enter”時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

Shift+Tab通常映射到ISO_Left_TabX11 中的鍵符,因此某些程序可能需要它而不是其配置中的文字“shift-tab”。

urxvt 在 ctrl+shift 上有一個奇怪的映射,看起來你必須重新編譯才能禁用它:有關更多詳細資訊,請參閱此頁面。編輯它看起來像在最近版本的 rxvt 你可以簡單地添加

URxvt.iso14755_52: False

我有S-Tab這個工作:

URxvt.keysym.C-Tab: \033{
URxvt.keysym.Control-Shift-ISO_Left_Tab: \033} 
! disable ctrl-shift
URxvt*iso14755: False 
URxvt*iso14755_52: False

在 vim 我有

nmap ^[{ :tabnext<cr>
imap ^[{ <ESC>:tabnext<cr>
nmap ^[} :tabprevious<cr>
imap ^[} <ESC>:tabprevious<cr>

引用自:https://unix.stackexchange.com/questions/50205