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?

David dice reinstalar a Mónica
fuente
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
Graham
fuente
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

Umut Sirin
fuente
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
usuario5481608
fuente
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

locojay
fuente
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
Tran Quoc Vuong
fuente
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

Alejandro Blasco
fuente
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
colibrí
fuente
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

Alejandro Blasco
fuente