tmux set -g mouse-mode on no funciona


244

He estado mirando y la gente dice que poner

set -g mouse-mode on

debería permitirle desplazarse por la salida del terminal cuando ejecute tmux. Sin embargo, después de poner esto en mi ~/.tmux.confarchivo y decir tmux set -g mouse-mode oncuándo en una sesión tmux, nada cambia. Cuando me desplazo, aún salgo de tmux, como desplazarme en vim con la configuración predeterminada.

Alguien sabe por qué es esto?


mode-mouseen la versión anterior
— hyiltiz

Respuestas:


559

Así que esta opción ha cambiado de nombre en la versión 2.1 (18 de octubre de 2015)

Desde el registro de cambios :

 Mouse-mode has been rewritten.  There's now no longer options for:
    - mouse-resize-pane
    - mouse-select-pane
    - mouse-select-window
    - mode-mouse

  Instead there is just one option:  'mouse' which turns on mouse support

Esto es lo que estoy usando ahora en mi .tmux.confarchivo

set -g mouse on

1
Gracias @ Graham42! Esta es ahora la respuesta correcta. Actualicé tmux y se rompió esta mañana, esto lo soluciona.
— Matthew Lehner

77
A pesar de que esta pregunta se hizo en 2012 mucho antes de este cambio, esta es solo la respuesta que yo (y muchos otros) necesité, hah
— Andrew

2
útil, arregla mi problema en Ubuntu 16.04
— sudoz

2
Si bien esto funciona para Mac, set -g mouse onromperá la capacidad de seleccionar texto en el terminal de Mac. Tengo que hacer específicamente set -g mouse offpara seleccionar texto
— gana el

1
@Wins presiona shift antes de seleccionar o pegar
— mdekkers

70

Como señaló @ Graham42, la opción del mouse ha cambiado en la versión 2.1. El desplazamiento ahora requiere que primero ingrese al modo de copia. Para permitir el desplazamiento casi idéntico a como era antes de 2.1, agregue lo siguiente a su .tmux.conf.

set-option -g mouse on

# make scrolling with wheels work
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

Esto permitirá desplazarse al pasar el mouse sobre un panel y podrá desplazarse ese panel línea por línea.

Fuente: https://groups.google.com/d/msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ


2
¡FANTÁSTICO! Solo configurar mousecomo dice la respuesta aceptada no funciona para mí: este alias que ingresa al modo de copia fue perfecto
— Gareth el

2
Esto parece funcionar, sin embargo, ya no puedo seleccionar texto en los paneles. ¿Alguien más también tiene este problema?
— will.fiset

64

Solo un aviso rápido para cualquier otra persona que esté perdiendo la cabeza en este momento:

https://github.com/tmux/tmux/blob/310f0a960ca64fa3809545badc629c0c166c6cd2/CHANGES#L12

así que eso es solo

 :setw -g mouse

1
O si desea que siempre, sólo tiene que añadir set -g mouseen ~/.tmux.conf. Sin embargo, tenga en cuenta que esto hará que copiar / pegar texto en la terminal a través del mouse sea más difícil (estoy seguro de que hay una manera, simplemente no lo he buscado).
— JM Janzen

36

Esto debería funcionar:

setw -g mode-mouse on

luego recurso y luego archivo de configuración

tmux source-file ~/.tmux.conf

o matar al servidor


Utilicé set -g mouse on y el comando de archivo fuente que diste, funcionó perfectamente.
— gospelslide

19

Pegue aquí en ~ / .tmux.conf

set -g mouse on

y correr en la terminal

tmux source-file ~/.tmux.conf

Gracias, trabajé para byobu --version byobu versión 5.73 tmux 2.5 mientras que las sugerencias anteriores no lo hicieron.
— Thomas

15

Como dijo @ Graham42, desde la versión 2.1 las opciones del mouse han cambiado de nombre, pero puede usar el mouse con cualquier versión de tmux agregando esto a su ~ / .tmux.conf:

Conchas de bash :

is_pre_2_1="[[ $(tmux -V | cut -d' ' -f2) < 2.1 ]] && echo true || echo false"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
      set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"

Sh (conchas de Bourne):

is_pre_2_1="tmux -V | cut -d' ' -f2 | awk '{print ($0 < 2.1) ? "true" : "false"}'"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
      set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"

Espero que esto ayude


1
¡Gracias! Tengo tmux.conf en git, y uso regularmente máquinas con la versión anterior de tmux ...
— Seb

¡La idea detrás de esta respuesta es pura genialidad! ... y también podría ayudar para las styleopciones resp. fg-, bg- y attr-abolition en tmux 2.9 . pero no funciona porque al menos mi shell se niega a comparar números de punto flotante ... y si su localización utiliza algo más que .un punto flotante, también debe solucionar este problema.
— DJCrashdummy

@DJCrashdummy ¿Cuál es el resultado de tmux -V | cut -d ' ' -f2su shell?
— Alejandro Blasco

1
Nota: en ubuntu 19.10, la versión es tmux 2.9a. Así que solía tmux -V | sed -E 's/tmux ([0-9.]*).*$/\\1/;'analizarlo de manera más robusta.
— autra

1
Nota: al menos para mí en Ubuntu 18.04, incluso si /bin/shes Bash, necesito la sintaxis Sh , probablemente porque Bash ingresa al modo POSIX
— philb

1

Prueba esto. Funciona en mi computadora.

set -g mouse on

1

Todavía puede usar la lógica diabólica de configurar las opciones dependiendo de su versión actual de Tmux: vea mi respuesta anterior .

Pero desde Tmux v1.7, set-optionagrega "-q" para silenciar los errores y no imprimir nada (vea el registro de cambios ). Recomiendo usar esta función, es más legible y fácilmente expandible.

Agregue esto a su ~/.tmux.conf:

# from v2.1
set -gq mouse on
# before v2.1
set -gq mode-mouse on
set -gq mouse-resize-pane on
set -gq mouse-select-pane on
set -gq mouse-select-window on

Restar tmux o source-filetu nuevo.tmux.conf


Nota al margen: estoy abierto a eliminar mi respuesta anterior si la gente prefiere esta

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.