Cómo copiar y pegar con el mouse con tmux

Cómo copiar y pegar con el mouse con tmux

Estoy usando tmuxOSX. Al copiar y pegar desde la terminal puedo tmuxmantener presionado Optiony seleccionar texto. Sin embargo, no consigo que el texto permanezca dentro del panel. Entonces, cuando quiero copiar texto, necesito desplazar el panel hacia el extremo izquierdo o ampliar el panel, como se muestra a continuación.

Esto además de tener que mantener presionada la Optiontecla es un fastidio. Sé que puedo ingresar al modo visual y usar movimientos de vim para llegar allí, pero prefiero tener una forma de usar mi mouse. ¿Alguien ha encontrado una solución para esto?

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Respuesta1

Coloque este bloque de código en su ~/.tmux.conf. Esto permitirá la integración del mouse, permitiéndole copiar desde un panel con el mouse sin tener que hacer zoom.

set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -t vi-copy    C-WheelUpPane   halfpage-up
bind -t vi-copy    C-WheelDownPane halfpage-down
bind -t emacs-copy C-WheelUpPane   halfpage-up
bind -t emacs-copy C-WheelDownPane halfpage-down

# To copy, drag to highlight text in yellow, press Enter and then release mouse
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "pbcopy"

Después de eso, reinicie su sesión de tmux. Resalte algo de texto con el mouse, pero no lo suelte. Ahora, mientras el texto todavía está resaltado y presionado el mouse, presione la tecla Intro. El texto resaltado desaparecerá y se copiará en su portapapeles. Ahora suelta el ratón.

Aparte de esto, también hay algunas cosas interesantes que puedes hacer con el mouse, como desplazarte hacia arriba y hacia abajo, seleccionar el panel activo, etc.

Si estás usando unversión más nueva de tmuxen macOS, prueba lo siguiente en lugar del anterior:

# macOS only
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down

# To copy, left click and drag to highlight text in yellow, 
# once you release left click yellow text will disappear and will automatically be available in clibboard
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"

Si usa iTerm en macOS, vaya a iTerm2 > Preferencias > pestaña “General” y en la sección “Selección”, marque “Las aplicaciones en la terminal pueden acceder al portapapeles”.

Y si estas usandolinuxy una versión más nueva de tmux, entonces

# Linux only
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down

# To copy, left click and drag to highlight text in yellow, 
# once you release left click yellow text will disappear and will automatically be available in clibboard
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"

En Debian y distribuciones basadas en Debian (Ubuntu, Kali), es posible que necesite instalar xclip:

sudo apt-get install -y xclip

(También puede consultarhttps://github.com/gpakosz/.tmuxpara muchas otras opciones de tmux.)

Respuesta2

Agregue estas 2 líneas en ~/.tmux.conf

set -g @plugin 'tmux-plugins/tmux-yank'
set -g mouse on

y luego instalar el complemento me funciona.

https://github.com/tmux-plugins/tmux-yank

Respuesta3

Lo que funcionó para mí en Ubuntu 20.04

  • tengo el modo mouse activado
  • Seleccionó el texto manteniendo presionado Shift+ Seleccionando con el cursor
  • Suelta Shifty coloca el mouse una vez que selecciones el texto.
  • Copia el texto Ctrl+ Shift+c
  • Pegue en cualquier lugar (fuera de tmuxsí mismo) Ctrl+ v, ya que esto copia el texto en el portapapeles de su sistema.

Respuesta4

En FreeBSD puedes usar yla tecla (estilo vi) para copiar el texto seleccionado mientras mantienes presionado el botón izquierdo del mouse sobre el texto seleccionado cuando mouse onestá configurado en ~/tmux.conf:-)

set -g mouse on
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'

Sólo recuerda instalar xclipel paquete (como root) con pkg install xclip:-)

Algunos consejos más útiles:

  • El uso set -g repeat-time 0deshabilitará las siguientes teclas de comando tmux cuando tenga un editor en un panel y un shell u otras aplicaciones operadas por cursor en los otros paneles. Por lo general, las siguientes teclas del cursor cambiarán entre paneles durante algún tiempo y eso puede distraer y molestar en algunos casos si desea utilizar el cursor rápidamente en el panel al que ha cambiado.
  • Úselo set -g status-style fg=white,bg=greenpara diferenciar fácilmente entre diferentes sesiones en diferentes máquinas remotas. Establecer valores diferentes bgen diferentes máquinas le ayudará a identificar rápidamente la máquina en la que desea trabajar :-)

información relacionada