Copiar al portapapeles desde Tmux en El Capitan

Estoy bastante contento con los cambios de terminal en El Capitán (ver, por ejemplo , esta pregunta ).

Sin embargo, no puedo entender cómo habilitar la copia al portapapeles del sistema desde Tmux. Por ejemplo, ahora que puedo seleccionar texto dentro de Tmux correctamente con el mouse, ¿cómo puedo copiar el texto seleccionado al portapapeles también, además del propio búfer de Tmux?

Tengo lo siguiente en mi 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

Intenté modificar la última línea para

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

pero en realidad no funcionó. Estaría agradecido por las sugerencias!

¡Gracias!

Cmd-C no funciona?
@partix: no, ya que el texto copiado se deselecciona automáticamente después de soltar el botón del mouse (o el panel táctil). Por supuesto, funciona en la Terminal, pero no desde Tmux dentro de la terminal.
La actualización a Tmux 2.1 interrumpió el desplazamiento del mouse en los paneles de Tmux.

Respuestas (9)

En realidad, acabo de encontrar una solución muy simple sobre cómo habilitar la copia usando Cmd+C nuevamente.

En la aplicación Terminal predeterminada, vaya a Ver-> "Permitir informes de mouse" y desmárquelo. Eso es.

PD: Obviamente, las nuevas características agradables, como arrastrar la pantalla dividida en tmux, dejan de funcionar después de desmarcar los informes del mouse.

PD: Usé previamente la solución de @siphiuel, que también funciona bien.
¡¡¡Gracias!!! ¡Esta es la forma más sencilla! Solo que la historia está rota. Solo puedo ver parte de la historia.
Super bonito. Esto funciona
y esto también funciona para una sesión tmux remota; Estoy pensando que la bind-key ... copy-pipesolución solo podría funcionar si se trata de una sesión tmux local. Por otra parte, tal vez si realiza la sesión de tmux remota dentro de una sesión de tmux local, ¿podría funcionar? De todos modos, me funcionó desmarcar "Permitir informes de mouse", e incluso hay un atajo ⌘-R (Cmd-R) para que pueda desactivarlo rápidamente para hacer una copia y luego volver a encenderlo.
Gracias por el atajo ⌘-R (Cmd-R), ¡eso ayuda mucho!

Si usa iTerm2 3.x, puede hacer que copiar/pegar funcione habilitando Applications in terminal may access clipboard:

ingrese la descripción de la imagen aquí

¡Simplemente resalte el texto con el mouse para copiarlo en el portapapeles de OS X!

También puede pegar desde el portapapeles de OS X en tmux con el habitual Cmd+ V.

esta fue la solución más fácil para mí.
¡Esto es increíble!

Si mantiene presionada la tecla de función, también puede seleccionar y copiar al portapapeles con apple+c.

Estamos buscando algo más que una respuesta de una sola línea. Intente expandir su respuesta para dar más detalles.
@Allan Esta es una respuesta completa, aunque es solo una línea. Es así de simple.
por cierto, descubrí que solo funciona en el teclado de la computadora portátil, no en los teclados adjuntos :(

En realidad, me equivoqué al decir que eso copy-pipeno funciona. Lo hace, y copy-selectionluego es superfluo, ya copy-pipeque copia el texto en el tablero de Tmux y lo canaliza a un comando de shell arbitrario. Así que la siguiente línea funciona:

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

Sin embargo, es necesario presionar yantes de soltar el botón del mouse. Me encontré con esto en la documentación del complemento tmux-yank :

"Al hacer una selección usando el modo tmux-mouse on o mode-mouse copy-mode, no puede confiar en el comportamiento predeterminado 'soltar el mouse después de la selección para copiar'. En su lugar, presione y antes de soltar el mouse".

Así que funciona, pero con una necesidad algo molesta de presionar ypara copiar el texto seleccionado con el mouse.

Si está utilizando Terminal.app: en macOS Sierra esto no funcionará debido a la regresión en el comportamiento de Terminal.app. Tendrá que usar el truco "volver a adjuntar al espacio de nombres de usuario" nuevamente.
De acuerdo con el comentario de @m1keil. Además, por alguna razón, tuve que compilar volver a adjuntar al espacio de nombres de usuario con interruptores adicionales, como este: brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste(estoy usando Homebrew)

Usando tmux versión 2.2 o posterior, agregue lo siguiente a su archivo tmux.conf:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"
Funciona para El Capitán 10.11, tmux 2.7

La respuesta de @Oplatek surtirá efecto

En la aplicación Terminal predeterminada, vaya a Ver-> "Permitir informes de mouse" y desmárquelo.

Pero de esta forma, no podríamos desplazarnos por la pantalla con el ratón.

Aquí hay otra forma sin deshabilitar Allow mouse reporting:

Presione Fny seleccione el texto con el mouse. Mantiene la selección allí para que pueda hacer clic derecho y seleccionar copiar.

Usando tmux 2.2, OS X El Capitan, Terminal Version 2.6.1 (el predeterminado que se envía con El Capitan), la siguiente configuración funciona sin problemas (hasta ahora).

$ 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, presione el botón izquierdo del mouse, marque el texto y suéltelo. El texto marcado está entonces en el portapapeles y se puede pegar con Cmd+ vcomo de costumbre.

Consulte ChrisJohnsen/tmux-MacOSX-pasteboard: Notas y soluciones alternativas para acceder a la mesa de trabajo de Mac OS X en sesiones tmux.

brew install reattach-to-user-namespace

Luego agregue a .tmux.conf:

set-option -g default-command "reattach-to-user-namespace -l zsh"

solo encuentro una manera

abra la configuración/perfiles de la terminal en la información de la terminal, cambie el tipo de terminal de xterm-256 a ansi, abra una nueva ventana de terminal y disfrute :)