tutorial conf commands comandos macos shell command-line tmux

macos - conf - tmux tutorial



¿Cómo copiar al portapapeles del sistema desde la salida de tmux después de la selección del mouse? (9)

En OSX utilizando 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"

Para la versión 2.4 de tmux, dado que amablemente decidieron cambiar la sintaxis del comando, debes usar:

bind-key -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy"

Tenga en cuenta que también es posible que necesite usar reattach-to-user-namespace pbcopy lugar de pbcopy simple.

Ahora para copiar al portapapeles del sistema, tengo que seleccionar el texto del mouse en la ventana de tmux con la tecla Shift . Y luego tengo que ejecutar este comando:

tmux save-buffer - | reattach-to-user-namespace pbcopy

¿Es más fácil guardar en el portapapeles del sistema? Key bind o mejor hacerlo automáticamente después del lanzamiento de Shift.

Mi configuración de tmux: https://gist.github.com/3641580


Hay una pregunta similar que se responde aquí: https://unix.stackexchange.com/questions/15715/getting-tmux-to-copy-a-buffer-to-the-clipboard

Solución encontrada allí:

# move x clipboard into tmux paste buffer bind C-p run "tmux set-buffer /"$(xclip -o)/"; tmux paste-buffer" # move tmux copy buffer into x clipboard bind C-y run "tmux show-buffer | xclip -i"

Consulte también: http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/

si ha establecido las siguientes opciones:

mouse-select-pane

mouse-select-window

Notará que no puede seleccionar ningún texto.

la solución es usar la tecla Mayús.

hold down the shift key and then left click and drag across the target text. you must also hold down the shift key and then middle click in order to paste the text.


Hice una versión con netcat hoy que es bastante simple.

https://github.com/base698/tmux-copy-paste-mac-osx

Aquí está el tmux.conf:

bind -t vi-copy ''v'' begin-selection bind -t vi-copy ''y'' copy-pipe ''nc localhost 5682'' bind p run-shell ''nc localhost 5683; nc localhost 5683 | tmux load-buffer -'' /; paste-buffer

Funciona con el mouse también en 1.8


Para os x, si usa la aplicación "Terminal". Puede desactivar el desplazamiento del mouse y usar las funciones habituales de copiar / pegar (cmd + c / cmd + v):

set-option -g mouse-select-pane off set-option -g mouse-resize-pane off set-option -g mouse-select-window off set-window-option -g mode-mouse off

o puede usar el desplazamiento del mouse y seleccionar texto con la "tecla fn":

set-window-option -g mode-mouse on


Poner esto en mi archivo ~ / .tmux.conf funciona para mí:

bind y run-shell "reattach-to-user-namespace -l zsh -c ''tmux show-buffer | pbcopy''"

Todas las demás soluciones potenciales que encontré fueron copiar algún tipo de contenido vacío en el portapapeles de OSX.

El único problema es que esto parece poner un retorno de carro al final del contenido pegado.



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

¡Simplemente resalte el texto con su mouse para copiarlo en el portapapeles de OS X! No es necesario presionar Opción como se sugiere en la respuesta del aceptante.

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


presione el botón izquierdo del mouse y manténgalo presionado, seleccione el texto en el panel y mantenga presionado el botón. luego presione "y", que guarda la selección dentro del portapapeles y escapa del modo de selección / copia.

funciona aquí con iTerm 3.1.beta.5, tmux 2.5 y la siguiente configuración:

### copy & paste ------------------------------------------------------- # Use vim keybindings in copy mode setw -g mode-keys vi # Setup ''v'' to begin selection as in Vim bind-key -T copy-mode-vi v send -X begin-selection bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" # Update default binding of `Enter` to also use copy-pipe unbind -T copy-mode-vi Enter bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"