Sincronice el tablero entre la sesión remota de tmux y el tablero local de Mac OS

18

Configuración: uso iTerm2 en MacOS para conectarme a un servidor remoto. El servidor remoto ejecuta tmux, en el que abro archivos y edito en sesiones vim.

Problema: No puedo copiar / pegar entre la sesión remota de tmux y el cliente iTerm local. Puedo usar la selección alt / option + mouse de iTerm 2 para seleccionar texto, pero esto se copia en múltiples paneles vim / paneles tmux - mal.

¿Existe alguna solución elegante para hacer que las selecciones en los paneles tmux se sincronicen entre el tablero remoto y el local (tablero de MacOS)? He visto volver a conectar el espacio de nombres de usuario , pero estoy bastante seguro de que no hace lo que quiero.

bhargav
fuente
3
¿Es realmente un problema de tmux? Me parece que tendría el mismo problema en general al conectarse solo con ssh.
kejadlen
3
Puede que no sea un problema de tmux, pero es un problema de flujo de trabajo. No puedo ser el único que tiene este problema exacto, por eso me pregunto qué están haciendo otras personas para solucionarlo.
bhargav

Respuestas:

13

Entonces, cuando ssh en el servidor, puede usar el túnel inverso para que pueda hablar con su máquina OSX para enviarle comandos pbcopy.

ssh -R 1234:localhost:22 remoteServer

Reemplace 1234con cualquier puerto abierto del servidor remoto. Luego, en el servidor remoto, puede ejecutar:

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

Eso debería conectarse de nuevo a OSX y enviarle el contenido de su búfer de copia tmux. Es posible que desee utilizar las teclas ssh para evitar escribir su contraseña en su máquina OSX.

Si eso funciona, puede crear sus combinaciones de teclas tmux.

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

Debo señalar que para que esto funcione, deberá activar el uso compartido remoto en OSX.

Opción secundaria:

Como está usando OSX, si también está usando iTerm2, puede considerar instalar http://code.google.com/p/iterm2/downloads/detail?name=tmux-for-iTerm2-20120203.tar.gz&can = 2 & q = en sus servidores.

Es básicamente un tmux personalizado que admite la bandera "-C". Esta bandera entrega ventanas, paneles y toda su división a iTerm2.

papa
fuente
2

Un método más simple

  1. Habilite XQuartz para sincronizar el portapapeles
  2. Utilice el reenvío X11 cuando se conecte al servidor remoto
  3. Tenga un enlace como en su tmux.conf: bind-key C-c run ‘tmux show-buffer | xsel -pbi'
    • donde está el portapapeles X de tu elección después de la tubería

También puede hacer un enlace similar en vim si lo desea,

recatado
fuente
0

Gracias a la respuesta del Papa, probé la tmux -Cpista.

  1. No tiene que instalar nada, porque la versión actual de tmux admite el -Cindicador.
  2. Uso -CC, porque -Cno siempre funciona.

Entonces con tmux -CC(o tmux -CC attach) tmux es incluso mejor de lo que ya es.

mamiu
fuente