Como posso desabilitar atalhos de teclado / keybind na tela GNU?

1

Eu uso iTerm2 no Mac e personalizo controle + e controle + para enviar hex 0x01 e 0x05 quando pressionado - o que faz com que o cursor salte para o início e o fim da linha ao digitar ou editar comandos (em oposição a uma palavra por vez) - e a tecla alt mais uma seta faz o cursor mover uma palavra de cada vez.

Isso funciona bem em sistemas Linux remotos ao usar o SSH, até que eu inicie uma sessão de tela. O controle + ainda funciona bem, mas quando tento usar o controle + eu recebo uma mensagem na área de status screen :

No other window.

Encontrei a documentação que sugeria que adicionar essas linhas a /etc/screenrc ou ~/.screenrc ligaria as chaves às janelas seguinte e anterior:

bindkey "^[[5D" prev
bindkey "^[[5C" next

E eu achei que a sintaxe para desvincular era usar essa linha sem comando:

bindkey "^[[5D"
bindkey "^[[5C"

Eu também tentei da seguinte maneira:

bindkey "^[[01"
bindkey "^[[05"

Nada disso parece funcionar.

/etc/screenrc é completamente inalterado para Ubuntu 16.04 e não há nenhum arquivo ~/.screenrc no momento (ou seja, nenhuma interferência não padrão)

Como posso desvincular isso ou depurar ainda mais para descobrir onde está o hangup?

    
por cwd 03.06.2017 / 03:52

2 respostas

3

O código 0x01 é Control-A, que é o caractere de comando padrão na tela, então quando você controla + duas vezes você tem a ligação de ação padrão outro , ou seja, outra janela, daí a mensagem.

Você pode mudar para um caractere de comando diferente, por exemplo, Control-b ao iniciar a tela:

screen -e^Bb

ou você pode colocar seu ~/.screenrc na linha

escape ^Bb
    
por 03.06.2017 / 13:50
1

Você definiu Ctrl + Esquerda para enviar o caractere ^ A (Ctrl + A). Este é o mesmo caractere que Ctrl + A envia, e ^ A é o caractere de prefixo padrão para as ligações de tecla da Tela.

bindkey "^[[5D" prev na configuração da tela é inútil por dois motivos. Primeiro, isso define o que acontece quando o Screen recebe essa sequência de escape após o caractere de prefixo , ou seja, depois de um ^ A. Segundo, ^[[5D é o que alguns terminais enviam para Ctrl + Esquerda , mas você reconfigurou seu terminal para enviar algo diferente (^ A).

Em vez de fazer Ctrl + Esquerda enviar ^ A, faça-a enviar ^[[1~ ou ^[OH (onde ^[ é um caractere de escape). Da mesma forma, faça Ctrl + Direito enviar ^[4~ ou ^[OF ao invés de ^ E. Estas são seqüências de escape normalmente enviadas pelas teclas Início e Fim .

    
por 04.06.2017 / 01:51