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.