Map Control-Shift-Tab dans rxvt-unicode

9

Je voudrais mapper le raccourci clavier Ctrl+ Shift+ Tabdans rxvt-unicode. J'ai réussi à mapper Ctrl+ Tabcomme suit. L'entrée correspondante dans .Xresourcesest

URxvt.keysym.Control-Tab: \033[27;5;9~

L'utilisation cat -vconfirme que ce mappage fonctionne:

$ cat -v
^[[27;5;9~

La séquence ^[[27;5;9~peut ensuite être utilisée dans des applications comme vimpour mapping Ctrl+ Tab. Je m'attendrais à ce que l' .Xresourcesentrée suivante fonctionne de la même manière.

URxvt.keysym.Control-Shift-Tab: \033[27;6;9~

Cependant, catn'affiche pas le mappage correct:

$ cat -v
^[[Z

Comment configurer la cartographie Ctrl+ Shift+ Tab?

Éditer

Les cartographies

URxvt.keysym.Control-ISO_Left_Tab: \033[27;6;9~    
URxvt.keysym.Control-Shift-ISO_Left_Tab: \033[27;6;9~

se comporter de la même façon. Après avoir d'abord appuyé sur Ctrl+ Tab, relâché les deux, puis appuyé Return deux fois , puis appuyé sur Ctrl+ Shift+ Tab, relâché tout, puis appuyé Return deux fois, j'obtiens la sortie suivante:

$ cat -v
^[[27;5;9~
^[[27;5;9~


^[[27;6;9~↵
^[[27;6;9~M-bM-^FM-5
  • Case Ctrl+ Tab: Le premier retour fait réapparaître l'entrée en sortie.
  • Case Ctrl+ Shift+ Tab: Le premier retour produit le signe , le deuxième retour produit la dernière ligne ci-dessus.

Prochaine édition: Plus d'informations

Que se passe-t-il si vous appuyez sur ctrl-shift (relâchez les deux sans appuyer sur aucune touche), puis entrez, dans une fenêtre différente?

Dans une autre fenêtre urxvt? Lorsque j'appuie sur Ctrl + Maj et que je relâche les deux touches, une boîte jaune strident apparaît dans le coin inférieur gauche: KEYCAP PICTURE INSERT MODEelle semble provenir d'urxvt, elle n'apparaît pas dans d'autres applications.

Ou même simplement ctrl-shift-tab puis entrez dans une fenêtre différente (je veux dire pas rxvt, comme dans une fenêtre gedit ou le navigateur web ou quelque chose.)

Je reçois une nouvelle ligne.

Que se passe-t-il si vous appuyez sur shift + ctrl + tab [c'est-à-dire shift down, ctrl down, tab, ctrl up, shift up] à la place, ou vice versa si c'est ce que vous faisiez?

Dans 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)

J'essaie de restreindre les choses parce que je pense que vous pourriez avoir une sorte de mappage sur "ctrl + shift" dans xcompose ou quelque chose.

Pas que je sache, mais on ne sait jamais.

Quelle est la sortie de xev lorsque vous appuyez sur "ctrl + shift + tab, enter"?

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
Marco
la source
Je ne sais pas si cela fonctionnera, donc ne postez pas encore de réponse, mais essayez Control-Shift-ISO_Left_Tab ou Control-ISO_Left_Tab.
Random832
@ Random832 C'est certainement un coup de pouce dans la bonne direction, mais la cartographie se comporte bizarrement. Lorsque j'appuie sur la Ctrl-Tab cat -vsortie de la séquence mentionnée, Ctrl-Shift-Tabla séquence correcte sort ^[[27;6;9~mais la prochaine pression de touche n'est pas interprétée comme d'habitude. Dans la cat -vsortie Ctrl-Shift-Tab+ enter s'affiche comme ^[[27;6;9~↵, au lieu de deux lignes ^[[27;6;9~(une pour l'entrée, une pour la sortie). Ce mappage ne fonctionnerait pas dans vim. Avez-vous une autre idée?
Marco
Comme un symbole al littéral? Relâchez-vous ctrl-shift avant d'appuyer sur Entrée? Laquelle des deux correspondances que j'ai suggérées a fonctionné, afin que je puisse commencer à écrire une réponse?
Random832
@ Random832 J'ai ajouté des informations plus détaillées (voir modifier). Merci pour vos efforts jusqu'à présent.
Marco
Que se passe-t-il si vous appuyez sur ctrl-shift (relâchez les deux sans appuyer sur aucune touche), puis entrez, dans une fenêtre différente? Ou même simplement ctrl-shift-tab puis entrez dans une fenêtre différente (je veux dire pas rxvt, comme dans une fenêtre gedit ou le navigateur web ou quelque chose du genre.) Que se passe-t-il si vous appuyez sur shift + ctrl + tab , tab, ctrl up, shift up] à la place, ou vice versa si c'est ce que vous faisiez? J'essaie de restreindre les choses parce que je pense que vous pourriez avoir une sorte de mappage sur "ctrl + shift" dans xcompose ou quelque chose. Quelle est la sortie xevlorsque vous appuyez sur "ctrl + shift + tab, enter"?
Random832

Réponses:

2

Shift+ Tabest souvent mappé sur le ISO_Left_Tabkeysym dans X11, donc certains programmes peuvent en avoir besoin au lieu d'un 'shift-tab' littéral dans leur configuration.

urxvt a un étrange mappage sur ctrl + shift, il semble que vous devrez recompiler pour le désactiver: consultez cette page pour plus de détails. EDIT Il semble que dans les versions récentes de rxvt, vous pouvez simplement ajouter

URxvt.iso14755_52: False
Aléatoire832
la source
3

J'ai S-Tabtravaillé avec ça:

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

et vim j'ai

nmap ^[{ :tabnext<cr>
imap ^[{ <ESC>:tabnext<cr>
nmap ^[} :tabprevious<cr>
imap ^[} <ESC>:tabprevious<cr>
user2565785
la source
1

Réponse partielle: Vous pouvez désactiver le mode Control-Shift ISO 14755 - au moins dans URxvt moderne - en ajoutant ce qui suit à votre fichier .Xdefaults (ou peut-être .Xresources, selon votre système):

URxvt.iso14755:    false
URxvt.iso14755_52: false
Peter
la source