¿Cómo creo un comando separado para copiar desde mi portapapeles tmux a mi portapapeles de Linux?

¿Cómo creo un comando separado para copiar desde mi portapapeles tmux a mi portapapeles de Linux?

Estoy intentando emular los siguientes enlaces que funcionan en OSX en Linux:

# Copy and paste from system clipboard
bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
bind C-v run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"

Es decir, quiero vincular un comando para copiar explícitamente el búfer tmux en el portapapeles de mi sistema y un comando diferente para copiarlo nuevamente. InoQuiero usar vi-select automáticamente para copiar al portapapeles de mi sistema desde tmux, ya que muchos de losrespuestas existentesDIRECCIÓN.

Probé los siguientes enlaces (uno a la vez).

bind C-c run "tmux save-buffer - | xclip -in -selection clipboard"
bind C-c run "tmux show-buffer | xclip -sel clip -i"

Ambos parecen hacer lo correcto en el primer uso, pero luego tienen un efecto secundario grave: deshabilitar todas mis combinaciones de teclas tmux después de su uso.

Es decir, ninguna de mis combinaciones de teclas tmux funciona después de la primera copia.

¿Cómo puedo copiar algo de mi portapapeles tmux al portapapeles de mi sistema y viceversa explícitamente sin deshabilitar mi capacidad para ejecutar más comandos tmux?

Respuesta1

xclip tiene un error por el cual no cierra la salida estándar, lo que significa que tmux no sabe que ha terminado. Es por eso que no puede ejecutar más comandos tmux después de la primera copia. Entonces puedes:

1) Utilice xsel en lugar de xclip, que no sufre el mismo problema.

2) Redirigir stdout para que /dev/nullme guste esto:xclip ... >/dev/null

3) Úselo run -ben lugar de runpara que tmux no espere a que finalice xclip.

información relacionada