tmux: ocasionalmente, a tecla de seta CTRL + B imprime o código de caractere ([A, [B, [C ou [D) em vez de alternar os painéis

3

Quando tento alternar painéis no tmux com ctrl + b, o tmux esporadicamente imprime o código de caractere correspondente [A, [B, [C ou [D em vez de painéis de alternância.

Eu posso fazer isso repetidamente, exatamente da mesma maneira, 75% do tempo que ele irá mudar corretamente e os outros 25% o tempo que ele irá imprimir o código de caracteres.

ctrl+b <up arrow>    prints [A
ctrl+b <down arrow>  prints [B
ctrl+b <right arrow> prints [C
ctrl+b <left arrow>  prints [D

Estou usando o cygwin conectado ao Linux Mint. O tmux está rodando no Linux mint, e o shell que estou usando é o bash.

Editar: para tornar essa pergunta mais amigável para pesquisa, adicionarei essas palavras-chave:

Terminal outputs character codes open bracket A, open bracket B, open bracket C, open bracket D.

Alguma idéia?

    
por Matthew 22.01.2013 / 00:13

2 respostas

2

Parece que o escape-time do tmux está um pouco baixo para a qualidade de conexão que você tem entre o sistema Cygwin e o sistema Linux.

Muitos terminais geram a seqüência de três bytes ESC [ B para a tecla de seta para baixo. A configuração escape-time informa ao tmux quanto tempo ele deve esperar por uma sequência completa após receber o ESC; se o tempo acabar sem receber uma sequência completa, o tmux tratará os bytes individuais como pressionamentos de teclas individuais (tratando o Cb ESC como uma chave tmux não ligada e passando [B para o tty do painel ativo).

Portanto, você tem escape-time definido para um valor muito baixo (o que provavelmente funciona bem quando você acessa tmux por conexões estritamente locais), ou a conexão entre as duas máquinas às vezes acaba atrasada apenas um pouco mais do que o valor escape-time . Você pode consultar o valor atual com o comando tmux show-options -s | grep escape-time .

O padrão é 500 milissegundos; isso deve funcionar bem na maioria das situações, mas pode ser muito curto para conexões marginais. Você pode tentar aumentar o valor de escape-time :

set-option -s escape-time 1000

Você pode colocar isso no seu arquivo ~/.tmux.conf , executá-lo como um comando tmux em um shell dentro de uma sessão tmux , ou digitá-lo diretamente em tmux prompt (aberto com Cb : ). Nota: As alterações feitas em ~/.tmux.conf não entrarão em vigor até você voltar asource do arquivo ou reiniciar seu servidor tmux .

    
por 22.01.2013 / 04:28
1

Estou tendo esse problema também; é definitivamente específico para as teclas de seta (e provavelmente cygwin) Por enquanto, decidi apenas desvincular as teclas de seta e mover os comandos select-pane para outro lugar, e as novas combinações de teclas funcionam perfeitamente. Não é uma solução muito satisfatória. Eu adoraria ouvir se alguém descobrir o que está acontecendo.

    
por 05.07.2013 / 20:43

Tags