Copiar para área de transferência de Tmux em El Capitan


19

Estou muito feliz com as mudanças do terminal em El Capitan (veja, por exemplo, esta pergunta ).

No entanto, não consigo descobrir como habilitar a cópia para a área de transferência do sistema no Tmux. Por exemplo, agora que posso selecionar o texto no Tmux corretamente com o mouse, como também posso copiar o texto selecionado para a área de transferência, além do buffer do próprio Tmux?

Eu tenho o seguinte no meu tmux.conf:

setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

setw -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

Eu tentei modificar a última linha para

bind-key -t vi-copy 'y' copy-selection \; copy-pipe "pbcopy"

mas realmente não funcionou. Ficaria grato por sugestões!

Obrigado!


Cmd-C não funciona?
nohillside

1
@partix - não, pois o texto copiado é desmarcado automaticamente após soltar o botão do mouse (ou trackpad). Claro que funciona no Terminal, mas não no Tmux dentro do terminal.
Siphiuel 02/10/2015

A atualização para o Tmux 2.1 quebrou a rolagem do mouse nos painéis do Tmux.
Siphiuel 19/10/2015

Respostas:


27

Na verdade, eu acabei de descobrir uma solução muito simples como habilitar a cópia usando o Cmd + C novamente.

No aplicativo Terminal padrão, vá para Exibir -> "Permitir relatórios do mouse" e desmarque-o. É isso aí.

PS: Obviamente, os novos recursos interessantes, como arrastar a tela dividida no tmux, param de funcionar depois de desmarcar os relatórios do mouse.


PS: Eu usei anteriormente a solução do @siphiuel, que também funciona bem.
Oplatek

1
Obrigado!!! Esta é a maneira mais simples! Só que a história é broken.I só pode ver parte de hitstory
Sato

Muito legal. Isso funciona
ShikharDua

e isso também funciona para uma sessão remota do tmux; Estou pensando que a bind-key ... copy-pipesolução só funcione se for uma sessão local do tmux. Então, novamente, talvez se você fizer a sessão remota do tmux em uma sessão local do tmux, ela pode funcionar? De qualquer forma, desmarcar a opção "Permitir relatório de mouse" funcionou para mim e existe até um atalho ⌘-R (Cmd-R) para que você possa rapidamente desativá-lo para fazer uma cópia e depois ativá-lo novamente.
Aaron Wallentine

24

Se você usa o iTerm2 3.x, pode copiar / colar funcionar ativando Applications in terminal may access clipboard:

insira a descrição da imagem aqui

Basta destacar o texto com o mouse para copiá-lo na área de transferência do OS X!

Você também pode colar da área de transferência do OS X no tmux com o Cmd+ usual V.


2
essa foi a solução mais fácil para mim.
Lennart

Isso é incrível!
mljrg

17

Se você mantiver a tecla de função pressionada, poderá selecionar e copiar para a área de transferência com apple + c também.


Estamos procurando algo mais do que uma resposta em linha única. Tente expandir sua resposta para fornecer mais detalhes.
Allan

2
@ Allan Esta é uma resposta completa, mesmo que seja apenas uma única linha. É simples assim.
pkuhar 18/04

btw, eu achei que só funciona no teclado do laptop, teclados não conectados :(
amohr

8

Na verdade, eu estava errado ao afirmar que copy-pipenão funciona. Ele funciona e copy-selectioné supérfluo, pois copy-pipecopia o texto para a área de transferência do Tmux e canaliza para um comando de shell arbitrário. Portanto, a seguinte linha funciona:

bind-key -t vi-copy 'y' copy-pipe "pbcopy"

No entanto, é preciso pressionar yantes de soltar o botão do mouse. Eu me deparei com isso na documentação do plugin tmux-yank :

"Ao fazer uma seleção usando o modo tmux-mouse on ou mode-mouse copy-mode, não é possível confiar no comportamento 'liberar mouse após seleção para copiar' padrão. Em vez disso, pressione y antes de liberar o mouse."

Por isso, funciona, mas com a necessidade um pouco irritante de pressionar ypara copiar o texto selecionado pelo mouse.


3
Se você estiver usando o Terminal.app: no macOS Sierra, isso não funcionará devido à regressão no comportamento do Terminal.app. Você precisará usar o hack "reaplicar ao espaço de nome do usuário" novamente.
M1keil 25/09/16

1
Concorde no comentário do @ m1keil. Além disso, por algum motivo eu tive que compilar Recoloque-a-user-namespace com opções adicionais, como este: brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste(i estou usando Homebrew)
siphiuel

4

Usando o tmux versão 2.2 ou posterior, adicione o seguinte ao seu arquivo tmux.conf:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Funciona para El Capitan 10.11, tmux 2.7
Homer,

3

A resposta de @Oplatek entra em vigor

No aplicativo Terminal padrão, vá para Exibir -> "Permitir relatórios do mouse" e desmarque-o.

Mas, dessa forma, não poderíamos rolar a tela com o mouse.

Aqui está outra maneira sem desativar Allow mouse reporting: Pressione Fne selecione o texto com o mouse.


0

Usando o tmux 2.2, OS X El Capitan, versão do terminal 2.6.1 (o padrão fornecido com o El Capitan), a seguinte configuração funciona sem falhas (até agora).

$ cat ~/.tmux.conf
set -g mouse on
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Para copiar, pressione o botão esquerdo do mouse, marque o texto e solte-o. O texto marcado fica na área de transferência e pode ser colado com Cmd+, vcomo de costume.


-2

eu acho apenas uma maneira

abra as configurações / perfis do terminal nas informações do terminal altere o tipo de terminal de xterm-256 para ansi abra uma nova janela de terminal e aproveite :)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.