it-swarm.com.de

Tmux Scrollgeschwindigkeit konfigurieren

Kann die Tmux-Scrollgeschwindigkeit (mithilfe eines Mausrads oder eines Touchpads) konfiguriert werden?

Tmux 2.1 bricht das Scrollen ab (abhängig von Ihrer Konfiguration) und zwingt mich dazu, meine Konfiguration zu aktualisieren. Das habe ich vor ein paar Wochen getan.

Aber jetzt denke ich, tmux scrollt * langsamer als früher. Ich denke, ich habe gelesen, dass Sie die Bildlaufgeschwindigkeit konfigurieren können, aber ich kann nirgendwo irgendetwas erwähnen.

* Scrollen mit einem Mausrad. (Ich verwende eigentlich ein Macbook-Trackpad, aber ich denke, es entspricht einem Mausrad.)

Ich weiß, dass Sie 10C-u (mit vi-Tastenkombinationen) ausführen können, um 10 Seiten nach oben zu springen, aber ich möchte auch einfach mit der Maus schnell scrollen können.

Ich denke, das ist die relevante Config, die ich momentan persönlich habe:

# 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'"
16
David Winiecki

Die Verwendung des tmux-scroll-copy-mode plugin sollte hier helfen.

Nachdem Sie es installiert haben, fügen Sie einfach set -g @scroll-speed-num-lines-per-scroll 5 zu Ihrer .tmux.conf hinzu.

scroll-speed-num-lines-per-scroll - Legt die Anzahl der Zeilen fest, die pro Scroll-Ereignis des Mausrads gescrollt werden sollen. Die Standardoption ist 3, die Bildlaufgeschwindigkeit in tmux 2.0. Größere Zahlen blättern schneller. Um den Bildlauf langsamer als eine Zeile pro Radklick zu verlangsamen, setzen Sie den Wert auf eine Dezimalzahl zwischen 0,0 und 1,0. Bei einem Dezimalwert wird nur der Bruchteil der Radereignisse wirksam. Der Wert sollte> = 0 sein. Beispiele:

"3" (Standardeinstellung) - Scrollen Sie drei Zeilen pro Mausrad-Klick. "1" - Eine Zeile pro Mausrad-Scroll-Klick (am weichsten). "0.5" - Nur eine Zeile scrollen bei jedem zweiten Mausrad-Scroll-Klick. "0.25" - Nur bei jedem vierten Mausrad-Scroll-Klick eine Zeile scrollen.

12
domi91c

Ich stimme zu, die Scrollgeschwindigkeit mit nur einer Zeile an der Zeile ist viel zu langsam. Sie können es auf halben Seiten springen lassen:

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

Dennoch ist der hier vorgeschlagene halbe Seitenfix viel zu schnell und zerstört den Eindruck des Scrollens, indem er nur durch das Gefühl des Sprungs ersetzt wird. Um den Bildlauf mit einer benutzerdefinierten Geschwindigkeit durchzuführen, können Sie mehrere Send-Tasten-Befehle wie folgt hinzufügen:

 # 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'"
6
xApple

Für tmux 2.4 und höher funktioniert das bei mir:

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

Dadurch wird jeweils eine Zeile gescrollt.

Aus dem changelog - suche nach Changes from 2.3 to 2.4

2
Henry Thiemann

Ich konnte von tmux 2.6 keine der Antworten bekommen, die ich hier gefunden hatte. Schließlich fand ich es heraus und postete eine andere Antwort.

Dies funktioniert als eigenständige Konfigurationsdatei.

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
1
ideasman42

Nun, hier ist eine ziemlich schlechte Lösung (verwenden Sie den vim-Navigationsmodus, k und 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'"

Noch nicht sicher, was alle Kompromisse sind, aber für Anfänger ist es schlecht, weil 1 sich der Cursor überall hinbewegt und 2 sich die Richtung ändert, wenn Sie die Richtung wechseln, vom Scrollen nach oben zum Scrollen nach unten oder umgekehrt, während Sie den Cursor bewegen bewegt sich zum anderen Rand des Bereichs.

Sie hat jedoch den Vorteil einer konfigurierbaren Geschwindigkeit. Ändern Sie einfach die 5s, um die Geschwindigkeit anzupassen.

Vollständige Offenlegung: Ich denke, dass dies stark von etwas inspiriert sein muss, das ich anderswo gelesen habe, weil es jetzt nicht sehr vertraut ist. Ich wünschte, ich hätte meine Quellen angerechnet.

1
David Winiecki