Como rolar enquanto segura a tecla Shift para copiar no tmux?

3

Eu tenho o modo Mouse configurado para on no Tmux para que eu possa usar a roda de rolagem usando set-window-option -g mode-mouse on .

No entanto, se eu quiser copiar a saída de um comando em particular que ultrapasse a altura da janela do terminal, não posso rolar para baixo enquanto pressiono a tecla Shift.

Quais modificações eu preciso fazer no arquivo de configuração para obter o comportamento desejado?

    
por Ashesh Kumar Singh 27.01.2016 / 18:59

1 resposta

2

Provavelmente você não pode. O xterm (e os programas que agem assim) fazem uma distinção entre as operações do mouse com / sem o modificador shift :

  • as operações unshifted podem ser programadas, ou seja, uma aplicação pode enviar uma seqüência de escape dizendo ao xterm para enviar de volta seqüências de escape para cada clique do mouse.
  • as operações não deslocadas não podem ser programadas dessa maneira. Eles são deixados como estão.

Portanto, tmux provavelmente não conseguirá alterar esse comportamento. Além disso, a maneira como os botões do mouse são usados é (novamente, uma convenção antiga) no caminho: um botão atua para iniciar uma seleção, outro para estender a seleção e o terceiro para colar a seleção. Alguns terminais podem implementar arrastando se você pressionar o botão de seleção de extensão.

Mas o mouse de roda é (muito) muito mais novo que o resto do protocolo, provavelmente a partir de meados / final dos anos 90. No protocolo do mouse, ele envia eventos de botão falso, por exemplo, botões 4 e 5. Embora um terminal possa ser implementado para estender uma seleção usando o mouse de roda, tmux não tem como controlar isso— e provavelmente seria embutido / não configurável. Se você não está vendo o comportamento desejado, provavelmente não poderá obtê-lo.

A distinção com shift é muito antiga e não está restrita a operações com mouse: em algumas plataformas, o page-up e page-down as teclas são configuradas para rolarem o terminal quando o modificador shift é adicionado, enquanto as chaves não-deslocadas podem ser lidas de um aplicativo.

Leitura adicional:

  • Ratos de roda (seqüências de controle do XTerm)
  • Modo de rastreamento normal (seqüências de controle do XTerm)
  • Default Key Bindings Manual do XTerm, por exemplo, as ligações para botões do mouse

                       ~Meta <Btn1Down>:select-start() \n\
                     ~Meta <Btn1Motion>:select-extend() \n\
                   ~Ctrl ~Meta <Btn2Up>:insert-selection(SELECT, CUT_BUFFER0) \n\
                 ~Ctrl ~Meta <Btn3Down>:start-extend() \n\
                     ~Meta <Btn3Motion>:select-extend() \n\
    
por 28.01.2016 / 00:19