Sincronizar a área de transferência entre a sessão tmux remota e a área de trabalho local do Mac OS

18

Configuração: eu uso o iTerm2 no MacOS para conectar-se a um servidor remoto. O servidor remoto executa o tmux, no qual abro arquivos e edito nas sessões do vim.

Problema: Não consigo copiar / colar entre a sessão tmux remota e o cliente iTerm local. Posso usar a seleção alt / option + mouse do iTerm 2 para selecionar texto, mas isso copia sobre vários painéis vim / tmux - ruim.

Existe alguma solução elegante para fazer seleções nos painéis do tmux sincronizadas entre a área de trabalho remota e a local (área de trabalho do MacOS)? Eu vi o espaço para nome de reconectar ao usuário , mas tenho certeza de que ele não faz o que eu quero.

bhargav
fonte
3
Este é realmente um problema do tmux? Parece-me que você teria o mesmo problema em geral, conectando-se apenas ao ssh.
kejadlen
3
Pode não ser um problema do tmux, mas é um problema de fluxo de trabalho. Não posso ser o único que tem esse problema exato - e é por isso que estou me perguntando o que as outras pessoas estão fazendo para contornar isso.
Bhargav

Respostas:

13

Portanto, quando você faz uma ssh no servidor, pode usar o túnel reverso para poder retornar à sua máquina OSX e enviar os comandos pbcopy.

ssh -R 1234:localhost:22 remoteServer

Substitua 1234por qualquer porta aberta do servidor remoto. Em seguida, no servidor remoto, você pode executar:

tmux save-buffer - | ssh -p 1234 localhost pbcopy

Isso deve se conectar novamente ao OSX e enviar o conteúdo do seu buffer de cópia do tmux. Você pode usar as teclas ssh para evitar digitar sua senha na sua máquina OSX.

Se isso funcionar, você poderá criar suas combinações de teclas tmux.

bind C-c run "tmux save-buffer - | ssh -p 1234 localhost pbcopy"

Devo observar que, para que isso funcione, você precisará ativar o Compartilhamento Remoto no OSX.

Opção secundária:

Como você usa o OSX, se também usa o iTerm2, considere instalar http://code.google.com/p/iterm2/downloads/detail?name=tmux-for-iTerm2-20120203.tar.gz&can = 2 & q = em seus servidores.

É basicamente um tmux personalizado que suporta o sinalizador "-C". Essa bandeira entrega janelas, painéis e toda a sua divisão para o iTerm2.

papa
fonte
2

Um método mais simples

  1. Habilitar o XQuartz para sincronizar a área de transferência
  2. Use o encaminhamento X11 ao se conectar ao servidor remoto
  3. Tenha uma ligação como no seu tmux.conf: bind-key C-c run ‘tmux show-buffer | xsel -pbi'
    • onde a área de transferência de sua escolha fica atrás do cano

Você pode fazer uma ligação semelhante no vim, se desejar, também

recatado
fonte
0

Graças à resposta do papa, tentei a tmux -Cdica.

  1. Você não precisa instalar nada, porque a versão atual do tmux suporta o -Csinalizador.
  2. Use -CC, porque -Cnem sempre está funcionando.

Portanto, com tmux -CC(ou tmux -CC attach) o tmux é ainda melhor do que já é.

mamiu
fonte