Não é possível ligar o comando sem prefixo exclusivamente a letra maiúscula (C-H vs. C-h)

1

Eu tenho as seguintes ligações de chave sem prefixo no meu 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

Essas ligações são ativadas pelo C-H, C-L pretendido, etc. O problema é que elas também são ativadas por suas contrapartes minúsculas, ou seja, C-h, C-l, etc., que está interferindo nas ligações de teclas de linha de comando. Por que isso não funcionaria como esperado?

    
por stereolink 19.10.2015 / 03:51

2 respostas

2

A maioria dos terminais simplesmente não faz distinção entre Ctrl e Ctrl Deslocamento - a entrada resultante sempre tem os mesmos bits indefinidos (0x6f o ou 0x4f O → 0x0f ^O ).

Você pode verificar isso usando stty cbreak; xxd -c1 e pressionando várias combinações de Ctrl O e Ctrl Deslocamento < kbd> O ; você verá o programa vendo tudo como 0x0f .

    
por 19.10.2015 / 07:16
2

Aparentemente, alguns emuladores de terminal fornecem uma opção via .Xdefaults / .Xresources para modificar códigos de tecla específicos.

Atualmente, tenho o seguinte em meus arquivos .Xdefaults e funciona com o urxvt como um encanto:

URxvt*keysym.Shift-Prior: string:
URxvt*keysym.Shift-Prior: string:%pre%2[
URxvt*keysym.Shift-Up: string:cd ..\n
URxvt*keysym.Shift-Down: string:cd --\n
2[ URxvt*keysym.Shift-Up: string:cd ..\n URxvt*keysym.Shift-Down: string:cd --\n

Veja aqui

    
por 23.07.2016 / 00:24

Tags