tmux

Configurar la velocidad de desplazamiento tmux



(6)

Bueno, aquí hay una solución bastante mala (usando el modo de navegación vim, tenga en cuenta la k y la j ).

bind-key -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if-shell -Ft= ''#{pane_in_mode}'' ''send-keys 5 k'' ''copy-mode -e''" bind-key -n WheelDownPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if-shell -Ft= ''#{pane_in_mode}'' ''send-keys 5 j''"

Aún no estoy seguro de cuáles son todas las ventajas y desventajas, pero para empezar es malo porque 1, el cursor se mueve por todo el lugar y 2, hay un retraso cuando cambias de dirección, de desplazarte hacia arriba o hacia abajo o viceversa, mientras que el cursor Se mueve al otro borde del panel.

Aunque tiene la ventaja de una velocidad configurable. Solo cambia los 5 para ajustar la velocidad.

Revelación completa: creo que se debió inspirar mucho en algo que leí en otro lugar, porque ahora no me resulta muy familiar. Ojalá hubiera acreditado mis fuentes.

¿Se puede configurar la velocidad de desplazamiento de tmux (con la rueda del mouse o la almohadilla táctil)?

Tmux 2.1 interrumpió el desplazamiento (dependiendo de tu configuración), lo que me obligó a actualizar mi configuración. Lo hice hace unas semanas.

Pero ahora creo que tmux se desplaza * más lento de lo que solía. Creo que leí que puedes configurar la velocidad de desplazamiento pero ahora no puedo encontrar ninguna mención de eso en ninguna parte.

* Desplazarse con una rueda del ratón que es. (En realidad estoy usando un trackpad de Macbook, pero creo que es equivalente a una rueda del ratón).

Sé que puedes hacer 10C-u (con enlaces de teclas vi) para saltar 10 páginas, pero también me gustaría poder desplazarme rápidamente con el mouse.

Creo que esta es toda la configuración relevante que personalmente tengo:

# Use the mouse to select panes, select windows (click window tabs), resize # panes, and scroll in copy mode. # Requires tmux version >= 2.1 (older versions have different option names for mouse) set -g mouse on # No need to enter copy-mode to start scrolling. # From github.com/tmux/tmux/issues/145 # Requires tmux version >= 2.1 (older versions have different solutions) bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= ''#{pane_in_mode}'' ''send-keys -M'' ''copy-mode -e''"


El uso del complemento tmux-scroll-copy-mode debería ayudar aquí.

Una vez que lo hayas instalado, simplemente agrega set -g @scroll-speed-num-lines-per-scroll 5 a tu .tmux.conf.

scroll-speed-num-lines-per-scroll: establece el número de líneas para desplazarse por evento de desplazamiento de la rueda del mouse. La opción predeterminada es 3, que era la velocidad de desplazamiento en tmux 2.0. Los números más grandes se desplazan más rápido. Para ralentizar el desplazamiento más lento que una línea por clic de rueda, establezca el valor en un decimal entre 0.0 y 1.0. Con un valor decimal, solo la fracción de los eventos de rueda tendrá efecto. El valor debe ser> = 0. Ejemplos:

"3" (predeterminado): desplace tres líneas por cada clic de rueda del mouse. "1": una línea por rueda de mouse, haga clic para desplazarse (más suave). "0.5": desplácese una línea solo en cada otra rueda del mouse haga clic en la rueda de desplazamiento. "0.25": desplace una línea solo con cada cuarta rueda de mouse, haga clic en desplazarse.


Estoy de acuerdo, la velocidad de desplazamiento con solo una línea en la línea es demasiado lenta. Puedes hacerlo saltar media páginas:

bind -t emacs-copy WheelUpPane halfpage-up bind -t emacs-copy WheelDownPane halfpage-down

Aún así, la corrección de media página propuesta aquí es demasiado rápida y destruye la impresión de desplazamiento al reemplazarla con solo la sensación de saltar. Para hacer que el desplazamiento se desplace a una velocidad personalizada, puede agregar varios comandos de envío de teclas como este:

# Scrolling in tmux set -g mouse on bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M; send-keys -M; send-keys -M; send-keys -M" "if -Ft= ''#{pane_in_mode}'' ''send-keys -M; send-keys -M; send-keys -M; send-keys -M'' ''copy-mode -e; send-keys -M; send-keys -M; send-keys -M; send-keys -M''" bind -n WheelDownPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M; send-keys -M; send-keys -M; send-keys -M" "if -Ft= ''#{pane_in_mode}'' ''send-keys -M; send-keys -M; send-keys -M; send-keys -M'' ''copy-mode -e; send-keys -M; send-keys -M; send-keys -M; send-keys -M''"


Hay un mod para tmux que permite especificar cualquier número de comandos para las combinaciones de teclas de ''modo'': http://ershov.github.io/tmux/

Puede desplazarse hacia arriba o hacia abajo varias veces o hacerlo en un bucle o incluso crear un procedimiento para ejecutar.

Por ejemplo:

bind -t emacs-copy WheelUpPane tcl { scroll-up ; scroll-up }


No pude obtener ninguna de las respuestas aquí a partir del tmux 2.6, eventualmente lo descubrí, así que publiqué otra respuesta.

Esto funciona como un archivo de configuración independiente.

set -g mouse on set-option -g status-keys vi set-window-option -g mode-keys vi bind-key -T copy-mode-vi WheelUpPane send-keys -X halfpage-up bind-key -T copy-mode-vi WheelDownPane send-keys -X halfpage-down


Para tmux 2.4 y superior, lo siguiente funciona para mí:

bind -Tcopy-mode WheelUpPane send -N1 -X scroll-up bind -Tcopy-mode WheelDownPane send -N1 -X scroll-down

Esto lo configura para desplazarse 1 línea a la vez.

Desde el changelog - busque Changes from 2.3 to 2.4