screenrc: Como mapear “alt + number” para “selecionar uma janela de tela” no terminal gnome

3

Encontrei isto online:

bindkey "1" select 1
bindkey "2" select 2 
bindkey "3" select 3 
....

Basicamente, mapeia alt + 1 para "selecionar 1"; alt + 2 para "selecionar 2". Então, quando você pressiona alt + 1 , ele deve pular para a janela de tela 1.

Isso funciona em xterm , mas não em gnome-terminal . Eu sei que gnome-terminal já usa alt + N para mudar para a guia n . Por isso, desativei esse mapeamento de chaves para o terminal do gnome em gnome configure editor . Mas ainda não funciona.

Parece que quando eu pressiono alt + 1 , ele é recebido por bash , não pelo programa de tela GNU, então ele coloca um caractere especial no bash ou coloca "arg: 1" .

Alguma solução? Muito obrigado!

    
por vim 10.06.2011 / 20:23

1 resposta

4

O problema é causado pelo tratamento diferente da tecla Meta (Alt nos teclados do PC) pelo Xterm e pelo Terminal GNOME.

No Xterm, manter pressionada a tecla Meta ajusta (por padrão) o bit mais alto nos caracteres ( Meta + 1 torna-se 1 ), enquanto o Terminal GNOME e a maioria dos outros emuladores de terminal deixam o caractere inalterado, mas o prefixam com um ESC (o mesmo pressionamento de tecla se torna 31 ).

Não parece haver uma maneira de configurar a manipulação da chave Meta no Terminal do GNOME ( printf '3[?1036l' pode funcionar, mas não posso testá-la), então você terá que de alguma forma vincular 31 a " select 1 " e assim por diante. (É altamente improvável que ele realmente funcione, e se acontecesse, provavelmente quebraria todas as outras chaves especiais: setas, teclas de função, etc.)

    
por 10.06.2011 / 21:43