Tmux 2.4+ con enlaces de modo de copia vi y xclip :
set-option -g mouse on
set-option -s set-clipboard off
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -se c -i"
Para versiones anteriores de tmux, enlaces de modo de copia emacs (el valor predeterminado) o plataformas que no son X (es decir, sin xclip), consulte la explicación a continuación.
Explicación: Primero debemos habilitar la opción del mouse para que tmux capture el mouse y nos permita vincular los eventos del mouse:
set-option -g mouse on
Gnome-terminal no admite la configuración del portapapeles utilizando secuencias de escape xterm, por lo que debemos asegurarnos de que la set-clipboard
opción esté desactivada:
set-option -s set-clipboard off
Esta opción podría ser compatible y habilitada de forma predeterminada en iTerm2 (consulte set-clipboard
el manual de tmux), lo que explicaría el comportamiento allí.
Luego podemos vincular la MouseDragEnd1Pane
"clave" del modo de copia , es decir, cuando se suelta el primer botón del mouse después de hacer clic y arrastrar en un panel, a un comando tmux que toma la selección del modo de copia actual (realizada por el enlace predeterminado para MouseDrag1Pane
) y la canaliza a un comando de shell. Este comando tmux era copy-pipe
anterior a tmux 2.4 y desde entonces ha cambiado a send-keys -X copy-pipe[-and-cancel]
. En cuanto al comando de shell, simplemente necesitamos algo que establezca el contenido del portapapeles del sistema a lo que se canaliza a él; xclip se usa para hacer esto en los siguientes comandos. Algunos reemplazos equivalentes para las "xclip -selection clipboard -i"
siguientes en plataformas que no son X son "wl-copy"
(Wayland), "pbcopy"
(macOS), "clip.exe"
(Windows, WSL) y "cat /dev/clipboard"
(Cygwin, MinGW).
Tmux 2.4+:
# For vi copy mode bindings
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
Tmux 2.2 a 2.4:
# For vi copy mode bindings
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
Antes de tmux 2.2:
Copiar después de que el soporte de arrastre del mouse se agregó originalmente en Tmux 1.3 al configurar la nueva mode-mouse
opción en on
. Tmux 2.1 cambió el soporte del mouse a los enlaces de teclas familiares del mouse, pero no tenía DragEnd
enlaces, que se introdujeron en 2.2. Por lo tanto, antes de 2.2, creo que el único método para configurar el portapapeles del sistema al arrastrar el mouse fue a través del uso incorporado de secuencias de escape xterm (la set-clipboard
opción). Esto significa que es necesario actualizar al menos a tmux 2.2 para obtener el comportamiento de arrastrar y copiar para terminales que no son compatibles set-clipboard
, como el Terminal GNOME.
xclip...
declaración con un simplepbcopy
hace el truco.Unknown key: MouseDragEnd1Pane
DragEnd
claves.Como una extensión de la respuesta aceptada, las personas a menudo encuentran que molesto al soltar el botón del mouse sale del modo de copia (esto es lo que sucede con
copy-pipe-and-cancel
). Ver: https://github.com/tmux/tmux/issues/140 . Por lo tanto, en tmux más nuevo (uso 2.6) podemos usarcopy-pipe
junto conclear selection
para copiar a la selección pero no salir del modo de copia:fuente
Extender ambas respuestas para copiar desde msys2 al portapapeles de Windows (y borrar la selección):
fuente
Otra extensión es sobre el uso de la
Shift
clave.Sostenga
Shift
mientras selecciona texto con el mouse. Ahora obtienes un menú estándar de clic derecho (mantén presionado o presionaShift
nuevamente) y puedes usarCtrl+Shift+C
yCtrl+Shift+V
para copiar y pegar. El texto copiado también estará disponible en el portapapeles del sistema .Probado
Ubuntu 18.04.1
contmux 2.6
.Fuente: https://forum.upcase.com/t/tmux-ctrl-shift-c-and-ctrl-shift-v-bindings/1208 .
fuente