Map Control-Shift-Tab in rxvt-unicode

9

Ich mag das Keybinding zur Karte Ctrl+ Shift+ Tabin rxvt-unicode. Ich habe es geschafft, Ctrl+ Tabwie folgt abzubilden . Der entsprechende Eintrag in .Xresourcesist

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

Die Verwendung cat -vbestätigt, dass diese Zuordnung funktioniert:

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

Die Sequenz ^[[27;5;9~kann dann in Anwendungen wie vimfür Mapping Ctrl+ verwendet werden Tab. Ich würde erwarten, dass der folgende .XresourcesEintrag genauso funktioniert.

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

Zeigt catjedoch nicht die richtige Zuordnung an:

$ cat -v
^[[Z

Wie richte ich das Ctrl+ Shift+ TabMapping ein?

Bearbeiten

Die Zuordnungen

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

benimm dich gleich. Nachdem ich zuerst Ctrl+ gedrückt Tab, beide losgelassen und dann Return zweimal gedrückt und dann Ctrl+ Shift+ gedrückt Tab, alle losgelassen und dann Return zweimal gedrückt habe, erhalte ich die folgende Ausgabe:

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


^[[27;6;9~↵
^[[27;6;9~M-bM-^FM-5
  • Fall Ctrl+ Tab: Bei der ersten Rückgabe wird die Eingabe erneut als Ausgabe angezeigt.
  • Fall Ctrl+ Shift+ Tab: Die erste Rückgabe erzeugt das Vorzeichen , die zweite Rückgabe erzeugt die letzte oben gezeigte Zeile.

Nächste Bearbeitung: Weitere Informationen

Was passiert, wenn Sie die Strg-Umschalttaste drücken (beide loslassen, ohne eine Taste zu drücken) und dann in einem anderen Fenster eingeben?

In einem anderen urxvt-Fenster? Wenn ich Strg + Umschalt drücke und beide Tasten KEYCAP PICTURE INSERT MODEloslasse, erscheint in der unteren linken Ecke ein markantes gelbes Kästchen: Es scheint von urxvt zu stammen, es erscheint nicht in anderen Anwendungen.

Oder auch nur Strg-Umschalt-Tab, dann in ein anderes Fenster eingeben (ich meine nicht rxvt, wie in einem gedit-Fenster oder dem Webbrowser oder so.)

Ich bekomme eine neue Zeile.

Was passiert, wenn Sie stattdessen Umschalt + Strg + Tab drücken [dh nach unten, Strg nach unten, Tab, Strg nach oben, nach oben] oder umgekehrt, wenn Sie dies getan haben?

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

Ich versuche, die Dinge einzugrenzen, weil ich denke, dass Sie in xcompose oder so etwas eine Zuordnung zu "Strg + Umschalt" haben könnten.

Nicht dass ich es wüsste, aber du weißt es nie.

Was ist die Ausgabe von xev, wenn Sie "Strg + Umschalt + Tab, Eingabe" drücken?

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
quelle
Ich habe keine Ahnung, ob dies funktionieren wird, also noch nicht als Antwort posten, aber versuchen Sie es mit Control-Shift-ISO_Left_Tab oder Control-ISO_Left_Tab.
Random832
@ Random832 Es ist definitiv ein Anstoß in die richtige Richtung, aber das Mapping verhält sich komisch. Wenn ich drücke Ctrl-Tab cat -v, wird die genannte Sequenz Ctrl-Shift-Tabausgegeben, die richtige Sequenz ^[[27;6;9~ausgegeben, der nächste Tastendruck wird jedoch nicht wie gewohnt interpretiert. In der cat -vAusgabe Ctrl-Shift-Tab+ Eingabe werden ^[[27;6;9~↵anstelle von zwei Zeilen angezeigt ^[[27;6;9~(eine für die Eingabe, eine für die Ausgabe). Diese Zuordnung würde in vim nicht funktionieren. Hast du eine andere Idee?
Marco
Wie ein wörtliches ↵ Symbol? Lassen Sie die Strg-Umschalttaste los, bevor Sie die Eingabetaste drücken? Welche der beiden von mir vorgeschlagenen Zuordnungen hat funktioniert, damit ich eine Antwort schreiben kann?
Random832
@ Random832 Ich habe weitere detaillierte Informationen hinzugefügt (siehe Bearbeiten). Vielen Dank für Ihre bisherigen Bemühungen.
Marco
Was passiert, wenn Sie die Strg-Umschalttaste drücken (beide loslassen, ohne eine Taste zu drücken) und dann in einem anderen Fenster eingeben? Oder auch nur Strg-Umschalt-Tab, dann in ein anderes Fenster eingeben (ich meine nicht rxvt, wie in einem gedit-Fenster oder im Webbrowser oder so). Was passiert, wenn Sie Shift + Strg + Tab drücken [dh Shift Down, Ctrl Down , tab, ctrl up, shift up] oder umgekehrt, wenn Sie das getan haben? Ich versuche, die Dinge einzugrenzen, weil ich denke, dass Sie in xcompose oder so etwas eine Zuordnung zu "Strg + Umschalt" haben könnten. Was wird ausgegeben, xevwenn Sie "Strg + Umschalt + Tab, Eingabe" drücken?
Random832

Antworten:

2

Shift+ Tabwird ISO_Left_Tabin X11 häufig dem Keysym zugeordnet, daher benötigen einige Programme dies möglicherweise anstelle eines wörtlichen 'Shift-Tab' in ihrer Konfiguration.

urxvt hat eine seltsame Zuordnung zu Strg + Umschalt. Es sieht so aus, als müssten Sie neu kompilieren, um sie zu deaktivieren: Weitere Informationen finden Sie auf dieser Seite . BEARBEITEN Es sieht so aus, als könnten Sie in neueren Versionen von rxvt einfach hinzufügen

URxvt.iso14755_52: False
Random832
quelle
3

Ich habe damit S-Tabgearbeitet:

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

und in vim habe ich

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

Teilantwort: Sie können den Control-Shift-ISO 14755-Modus - zumindest im modernen URxvt - deaktivieren, indem Sie Ihrer .Xdefaults-Datei (oder je nach System .Xresources) Folgendes hinzufügen:

URxvt.iso14755:    false
URxvt.iso14755_52: false
Peter
quelle