Como desativar o tempo limite entre a chave de prefixo e a chave de comando no tmux?

37

Meu ~/.tmux.conf :

set -g prefix C-a
unbind C-b
bind C-a send-prefix

bind-key o split-window -v
bind-key e split-window -h

bind-key w kill-pane

(para tornar as teclas de comando iguais ao Teminator do GNOME)

A situação: após a janela de divisão horizontal em 2 painéis, mudando para um painel com a tecla Ctrl + a Acima , devo aguardar um tempo (2-3 segundos) para visualizar os comandos do histórico do shell neste painel. Porque se eu pressionar o Up novamente, ele voltará para o outro painel em vez de me mostrar um comando de histórico do shell. Como posso recusar isso?

    
por quanta 19.08.2011 / 07:33

2 respostas

44

Cima, Baixo, Esquerda e Direita ( select-pane bindings; e Control- e Meta- das mesmas chaves para resize-pane ) são ligações "repetíveis" por padrão (feitas via bind-key -r ). Depois de digitar a chave de prefixo e qualquer tecla repetível, você pode digitar qualquer outra chave repetível (sem precisar digitar o prefixo novamente) dentro do número de milissegundos especificado por meio da opção repeat-time session (o padrão é 500 ms).

Você pode examinar o valor atual de repeat-time com esses comandos de shell:

tmux show-options -g | grep \^repeat-time     # global
tmux show-options    | grep \^repeat-time     # this session

Se você quiser desativar a repetição da sessão atual, digite seu prefixo, dois-pontos e digite este comando:

set-option repeat-time 0

Ou você pode encontrar um valor diferente de zero. Se você realmente tem um valor de cerca de 2000 (ou seja, 2s), então eu acho que está sendo definido em /etc/tmux.conf .

Se você quiser desabilitar a repetição (ou alterar o tempo limite) de todas as suas sessões, defina o valor global com este comando:

set-option -g repeat-time 0

Se você tiver definido um valor por sessão, precisará desativá-lo antes que o valor global entre em vigor ( set-option -u repeat-time ). Você pode gostar de definir o valor global através do seu .tmux.conf , se você preferir deixá-lo "permanentemente".

Se você tiver problemas com o Up, poderá reativá-lo sem -r :

bind-key Up select-pane -U
    
por 20.08.2011 / 11:42
3

Você também pode desativar a repetição para atalhos de teclado específicos, se desejar. Por exemplo, as ligações padrão para alternar entre painéis se resumem a:

bind-key -r Up    select-pane -U
bind-key -r Down  select-pane -D
bind-key -r Left  select-pane -L
bind-key -r Right select-pane -R

Você pode recriá-los sem o sinalizador -r , como

bind-key    Up    select-pane -U
bind-key    Down  select-pane -D
bind-key    Left  select-pane -L
bind-key    Right select-pane -R

Pessoalmente, prefiro alternar entre painéis para não ser repetitivo. Repetir é bom se você tiver uma janela dividida em vários painéis pequenos, mas isso pode levar a colisões de chaves (como você descreveu) com os aplicativos em execução nesses painéis (como o histórico de shell, vim, etc.) e geralmente não tem mais que 2 painéis por janela. Mas para cada um deles.

    
por 02.12.2017 / 19:10

Tags