
Estoy usando tmux
OSX. Al copiar y pegar desde la terminal puedo tmux
mantener presionado Option
y 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 Option
tecla 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?
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.
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
Shift
y coloca el mouse una vez que selecciones el texto. - Copia el texto
Ctrl
+Shift
+c
- Pegue en cualquier lugar (fuera de
tmux
sí mismo)Ctrl
+v
, ya que esto copia el texto en el portapapeles de su sistema.
Respuesta4
En FreeBSD puedes usar y
la tecla (estilo vi) para copiar el texto seleccionado mientras mantienes presionado el botón izquierdo del mouse sobre el texto seleccionado cuando mouse on
está 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 xclip
el paquete (como root) con pkg install xclip
:-)
Algunos consejos más útiles:
- El uso
set -g repeat-time 0
deshabilitará 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=green
para diferenciar fácilmente entre diferentes sesiones en diferentes máquinas remotas. Establecer valores diferentesbg
en diferentes máquinas le ayudará a identificar rápidamente la máquina en la que desea trabajar :-)