Mapeamento de redimensionamento do painel Beter para o tmux

0

Meu mapeamento de redimensionamento do painel atual é

bind Left resize-pane -L 5
bind Down resize-pane -D 5
bind Up resize-pane -U 5
bind Right resize-pane -R 6

Eu tenho que digitar os traços de vinculação de teclas e as teclas de seta para redimensionar o painel de cada vez. Isso é estupido. Como entrar em algum tipo de modo de painel de redimensionamento e apenas tocando as setas de tecla até o tamanho é satisfeito e, em seguida, sair do modo de painel de redimensionamento.

Qual será o comando / mapeamento chave para o seu "Entre no pan e pode mudar de tamanho apenas pelo modo de seta" e "Sair deste modo"

Obrigado

    
por SLN 17.08.2018 / 09:08

1 resposta

0

Usando chaves existentes

Talvez você não precise adicionar nada à sua configuração. Aqui estão as ligações padrão para redimensionar os painéis (de :list-keys ):

bind-key -r -T prefix M-Up             resize-pane -U 5
bind-key -r -T prefix M-Down           resize-pane -D 5
bind-key -r -T prefix M-Left           resize-pane -L 5
bind-key -r -T prefix M-Right          resize-pane -R 5
bind-key -r -T prefix C-Up             resize-pane -U
bind-key -r -T prefix C-Down           resize-pane -D
bind-key -r -T prefix C-Left           resize-pane -L
bind-key -r -T prefix C-Right          resize-pane -R

Essa opção -r para bind-key significa que eles suportam repetição - você pode continuar pressionando C-Arrow ou M-Arrow até terminar de redimensionar, sem inserir a sequência de prefixo novamente. A quantidade de tempo antes que esse tempo de repetição seja excedido é controlado pela opção repeat_time (padrão 500ms).

Ligação sem prefixo

Se você quiser evitar totalmente a chave de prefixo, você pode usar uma tabela bind diferente. Na seção bind-key da página de manual:

By default (without -T), the key is bound in the prefix key table. This table is used for keys pressed after the prefix key (for example, by default 'c' is bound to new-window in the prefix table, so 'C-b c' creates a new window). The root table is used for keys pressed without the prefix key: binding 'c' to new-window in the root table (not recommended) means a plain 'c' will create a new window. -n is an alias for -T root.

Para ligar diretamente à tabela raiz:

bind-key -n C-Up resize-pane -U 5
bind-key -n C-Down resize-pane -D 5
bind-key -n C-Left resize-pane -L 5
bind-key -n C-Right resize-pane -R 5

Ligação no modo de cópia

Você sugeriu um modo dedicado para redimensionamento. tmux não tem suporte para esses modos personalizados, mas já tem modo de cópia (por padrão, inserido com prefixo- [ e deixado com q ) no qual os pressionamentos de tecla podem ter diferentes vinculações normalmente sem o prefixo. Infelizmente, a ligação de comandos multiword (incluindo comandos com argumentos) neste modo não é suportada (veja questão do tmux 215 ) . No entanto, há uma solução alternativa para testar #{pane_in_mode} antes de fazer qualquer coisa. Com base nos comentários sobre esse problema e na solução "ligar sem prefixo" acima:

bind-key -n C-Up if-shell -F "#{pane_in_mode}" "resize-pane -U 5" "send-keys C-Up"
bind-key -n C-Down if-shell -F "#{pane_in_mode}" "resize-pane -D 5" "send-keys C-Down"
bind-key -n C-Left if-shell -F "#{pane_in_mode}" "resize-pane -L 5" "send-keys C-Left"
bind-key -n C-Right if-shell -F "#{pane_in_mode}" "resize-pane -R 5" "send-keys C-Right"
    
por 17.08.2018 / 16:40

Tags