Impossibile associare il comando senza prefisso esclusivamente alla lettera maiuscola (CH vs. Ch)


1

Ho i seguenti tasti di scelta rapida senza prefisso nel mio 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

Questi binding sono attivati ​​dai CH, CL, ecc. Previsti. Il problema è che sono attivati ​​anche dalle loro controparti minuscole, cioè Ch, Cl, ecc., Che interferiscono con i binding dei tasti della riga di comando. Perché questo non dovrebbe funzionare come previsto?

Risposte:


2

La maggior parte dei terminali non fa distinzione tra Ctrle CtrlShift- l'ingresso risultante ha sempre gli stessi bit non impostati (0x6f oo 0x4f O→ 0x0f ^O).

Puoi verificarlo usando stty cbreak; xxd -c1e premendo varie combinazioni di CtrlOe CtrlShiftO; vedrai il programma vedere tutto come 0x0f.


Va bene, grazie per questo, e specialmente per il comando di verifica. Ho deciso di utilizzare invece la meta chiave poiché è distinguibile.
stereolink,

2

Apparentemente alcuni emulatori di terminali forniscono un'opzione tramite .Xdefaults / .Xresources per modificare codici chiave specifici.

Attualmente ho il seguente nei miei .Xdefaults e funziona con urxvt come un incantesimo:

URxvt*keysym.Shift-Prior: string:\002[
URxvt*keysym.Shift-Up: string:cd ..\n
URxvt*keysym.Shift-Down: string:cd --\n

Vedi qui

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.