Tmux copy-pipe com seleção de mouse

5

Eu uso copy-pipe no OS X para compartilhar a área de transferência do sistema com o Tmux 1.8:

unbind -t vi-copy Enter
bind -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"

Isso funciona ao entrar no modo de seleção e copiar o texto (selecionar o texto e pressionar Enter ), mas não ao selecionar o texto com o mouse. É possível definir um comando que deve ser executado após a seleção do mouse, assim como copy-pipe é executado após pressionar Enter ? Ou seja Eu preciso executar reattach-to-user-namespace pbcopy quando a seleção for deixada.

    
por Patrick Oscity 29.10.2013 / 13:23

2 respostas

3

Não há uma maneira incorporada de personalizar o comportamento de "mouse para cima" que termina uma seleção iniciada pelo mouse. Para mais detalhes, consulte o reset_mode label de window_copy_mouse() em window-copy.c (os links são para a origem do tmux 1,8); especificamente, não há referências a opções de janela, sessão ou servidor neste trecho de código.

Existe uma solução alternativa, mas provavelmente é um caso extremo:

  • Ative sua ligação copy-pipe (por exemplo, pressione Enter) antes de soltar o botão do mouse.
    Isso executará o comando shell, copiará a seleção em um buffer e sairá do modo de cópia (ou seja, o comportamento usual para copy-pipe ).

Existe um pequeno efeito secundário:

  • O evento do mouse que o seu terminal irá enviar quando você finalmente soltar o botão fará com que tmux volte a entrar no modo de cópia. Você precisará sair manualmente (por exemplo, Escape ou C-c) desse modo de cópia "extra". Isso provavelmente poderia ser considerado um bug ( input_mouse() não verifica se o evento do mouse é um evento "botão para cima" antes de iniciar um novo modo de cópia); mas, na maioria das vezes, é inofensivo (além da inconveniência de ter que sair da segunda instância do modo de cópia).
por 30.10.2013 / 11:15
8

Para o tmux 2.2 e posterior use:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"
    
por 02.05.2016 / 21:31