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

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

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 às do GNOME Teminator)

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

Responder1

Cima, Baixo, Esquerda e Direita ( select-paneligações; e Control- e Meta- das mesmas teclas 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 chave repetível única, você pode digitar qualquer outra chave repetível (sem precisar digitar o prefixo novamente) dentro do número de milissegundos especificado pela repeat-timeopção de sessão (o padrão é 500 ms).

Você pode examinar o valor atual de repeat-timecom estes comandos shell:

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

Se você deseja desabilitar a repetição para a sessão atual, digite seu prefixo, dois pontos, e digite este comando:

set-option repeat-time 0

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

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

set-option -g repeat-time 0

Se você definiu um valor por sessão, será necessário desmarcá-lo antes que o valor global entre em vigor nessa sessão ( set-option -u repeat-time). Você pode definir o valor global por meio de seu .tmux.confse preferir deixá-lo desativado “permanentemente”.

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

bind-key Up select-pane -U

Responder2

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ê poderia recriá-los sem a -rbandeira, 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 que a troca de painéis não seja repetível. Repetir é bom se você tiver uma janela dividida em vários pequenos painéis, mas pode levar a colisões importantes (como você descreveu) com os aplicativos em execução nesses painéis (como histórico do shell, vim, etc.), e eu geralmente não tem mais do que 2 painéis por janela. Mas cada um na sua.

informação relacionada