Tmux espera após alternar os painéis

1

Eu tenho usado o tmux por um tempo agora, mas este problema parece realmente aparecer após a troca de máquinas.

Ao alternar os painéis direcionalmente usando as teclas de seta com prefixo +, o tmux espera por algum tempo após cada pressionamento de tecla direcional para ver se você adiciona qualquer pressionamento de tecla direcional. Isso é facilmente observado pressionando o prefixo e, em seguida, esmagando para a esquerda e para a direita quando você tem dois painéis dispostos horizontalmente. Ele aceitará spam de esquerda + direita adicionais como mudanças de painel indefinidamente, desde que você não deixe muito tempo entre eles.

No entanto, para mim, é um caso extremamente comum que a primeira coisa que eu quero fazer depois de trocar painéis, é re-executar o último comando executado nesse terminal (seta para cima). Devido a esse negócio de espera e captura que o tmux faz ao alternar os painéis, eu tenho que esperar mais de um segundo antes de empurrar a seta para cima ou então ele irá devorar meu pressionamento de tecla. Existe uma opção de configuração para encurtar esse tempo? Está começando a ficar muito chato.

    
por Shadyjames 16.12.2014 / 06:52

1 resposta

1

O tmux é bem flexível: todos os exemplos de pressionamento de tecla são baseados em uma configuração padrão (no OpenBSD). Isso provavelmente funcionará em sua máquina se você for o administrador / instalador e não tiver mexido em personalizar os pressionamentos de tecla, mas as teclas que menciono não têm garantia de funcionar com todas as instalações do tmux. Se as pessoas tiverem mexido nas personalizações, esperamos que essas mesmas pessoas também possam compensar para que essas instruções funcionem com as personalizações.

Existe uma opção chamada tempo de repetição. Você pode querer apenas desligar o recurso. Observe que, se você digitar Ctrl-B, uma lista de comandos será mostrada. Muitos desses comandos apenas começam com "bindkey", mas as teclas de seta começam com "bindkey -r". O -r diz que um tempo de repetição deve ser usado.

Ctrl-B :unbind Right

Cuidado: você pode se sentir tentado a fazer isso:

Ctrl-B :bind Right selectpane -R

No entanto, ao fazer isso, parece que o -r (após a palavra bind) é inserido automaticamente. Pressionando

Ctrl-B ?
executará "lsk" e mostrará a configuração atual, incluindo -r sendo inserido de volta. Ainda não descobri por que; Pode ser algo específico para as teclas de seta. A man page diz "Repetir está habilitado para as chaves padrão ligadas ao comando resize-pane." O painel de redimensionamento usa Ctrl-setas.

Ctrl-B :set repeat-time 1
Ctrl-B :show

Isso define o valor como 1 milissegundo. A desvantagem é que parece haver pouca flexibilidade: essa parece ser uma opção que afeta universalmente todos os comandos. No entanto, você pode não estar desejando essa flexibilidade de qualquer maneira, e isso pode ser uma solução utilizável que você considera perfeitamente satisfatória.

Uma vez que você encontrar algo que goste, certifique-se de editar um arquivo de configuração do tmux para que isso aconteça de forma bastante automática, sem precisar digitar esses pressionamentos de tecla todas as vezes.

    
por 12.01.2015 / 03:43

Tags