2016-03-15 20 views
11

Czy można skonfigurować szybkość przewijania tmux (za pomocą kółka myszy lub tabliczki dotykowej)?Skonfiguruj szybkość przewijania tmux

Tmux 2.1 rodzaj zepsucia przewijania (w zależności od konfiguracji), zmuszając mnie do aktualizacji mojej konfiguracji. Zrobiłem to kilka tygodni temu.

Ale teraz myślę, że tmux przewija się * wolniej niż kiedyś. Myślę, że czytam, że możesz skonfigurować szybkość przewijania, ale nie mogę teraz znaleźć żadnej wzmianki o tym miejscu.

* Przewijanie za pomocą kółka myszy. (W rzeczywistości używam gładzika MacBooka, ale myślę, że jest to odpowiednik kółka myszy.)

Wiem, że możesz zrobić 10C-u (za pomocą klawiszy vi), aby przeskoczyć o 10 stron, ale wolałbym też aby móc szybko przewijać za pomocą myszy.

myślę, że to wszystko jest odpowiedni config ja osobiście mam obecnie:

# 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'" 
+0

Coraz więcej myślę, że prędkość przewijania w tmux nie zmieniła się w 2.1. Myślę, że mylę to z prostym iTermem bez tmux, gdzie przewijanie ma zmienną prędkość w zależności od szybkości przesuwania po gładziku. Prawdopodobnie nie coś, co można naprawić w tmux poprzez konfigurację. Założę się, że musi to być prośba o funkcję tmux. –

+0

Ma prędkość, nie jest tak gładka i szybka jak bez tmux, nawet z prawie pustym plikiem konfiguracyjnym. (Wydaje mi się, że jeśli umieścisz wystarczającą liczbę haczyków w swojej konfiguracji, spowolni to działanie, ale to nie wydaje się być moim problemem.) –

Odpowiedz

1

Więc tutaj jest dość złe rozwiązanie (z użyciem trybu nawigacji vim, zanotuj k i 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'" 

Nie wiem jeszcze, co wszystkie kompromisy są, ale na początek to jest złe, ponieważ 1, kursor przesuwa się na miejsce i 2, jest opóźnienie po przełączeniu kierunki, przewijanie do przewijania w dół lub odwrotnie, gdy kursor przesunie się na drugą krawędź panelu.

Ma tę zaletę, że ma konfigurowalną prędkość. Po prostu zmień 5, aby dostosować prędkość.

Pełne ujawnienie: Myślę, że musiało to być mocno zainspirowane czymś, co przeczytałem gdzie indziej, ponieważ nie jest ono teraz zbyt dobrze znane. Szkoda, że ​​nie zapisałbym swoich źródeł.

+0

Nie! to był dobry pomysł :) Wystarczy zastąpić 'k' z' C-y' i 'j' z wbudowanym vim scroll' C-e'. Nie potrzeba wtyczki. dzięki. – Hettomei

+0

Prawie idealnie! Drobna modyfikacja powodująca, że ​​zdarzenia przewijania przechodzą do panelu, w którym znajduje się mysz, nawet jeśli nie jest to aktywny panel: 'bind-key -n WheelUpPane if-shell -F -t =" # {mouse_any_flag} "" send -keys -M "" if-shell -F -t = '# {pane_in_mode}' 'send-keys -t = H 5 k' 'tryb kopiowania -e' " klucz-bind -n WheelDownPane if-shell - F -t = "# {mouse_any_flag}" "send-keys -M" "if-shell -F -t = '# {pane_in_mode}' 'send-keys -t = L 5 j'" ' Zrobiłem to tak kursor przeskakuje do góry/dołu podczas przewijania, aby naprawić problem z opóźnieniem. –

5

Zgadzam się, prędkość przewijania z jedną linią jest zbyt mała. można je przeskoczyć pół-strony:

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

Nadal fix pół strony proponowane tutaj jest o wiele za szybko i destroyes wrażenie przewijanie przez zastąpienie go tylko uczucie skoków. Aby odejść przewijania z prędkością niestandardowego można dodać kilka wysyłanie klawiszy poleceń tak:

# 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'" 
-1

Jest to mod do tmux pozwalający określić dowolną liczbę poleceń dla skróty klawiszowe „tryb”: http://ershov.github.io/tmux/

Możesz przewijać w górę lub przewijać kilka razy lub robić to w pętli lub nawet tworzyć procedurę do wykonania.

Na przykład:

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

Używanie wtyczki tmux-scroll-copy-mode powinno pomóc tutaj.

Po zainstalowaniu wystarczy dodać set -g @scroll-speed-num-lines-per-scroll 5 do pliku .tmux.conf.

scroll-speed-num-lines-per-scroll - Ustawia liczbę linii do przewijania na jedno zdarzenie przewijania myszy. Domyślną opcją jest 3, czyli prędkość przewijania w tmux 2.0.Większe liczby przewijają się szybciej. Aby zwolnić przewijanie wolniej niż jeden wiersz na jedno kliknięcie, ustaw wartość dziesiętną między 0,0 i 1,0. Przy wartości dziesiętnej zaczyna obowiązywać tylko ta część zdarzeń koła. Wartość powinna wynosić> = 0. Przykłady:

"3" (domyślnie) - Przewiń trzy linie na każde kliknięcie kółka myszy. "1" - Jeden wiersz na kliknięcie przewijanego kółka myszy (płynne). "0.5" - Przewiń tylko jedną linię na każdym innym kliknięciu przewijania myszy. "0.25" - Przewiń tylko jedną linię na co czwartym kliknięciu przewijania myszy.

+3

Wygląda na to, że nie działa z wersją 2.5 – Ethereal

0

Dla tmux 2,4 i powyżej, następujących utworów dla mnie:

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

To ustawia go do przewijania 1 linię naraz.

Z changelog - poszukaj Changes from 2.3 to 2.4

0

nie mogłem dostać żadnej z odpowiedzi tutaj roboczych od tmux 2.6, w końcu zorientowaliśmy się więc opublikowania inną odpowiedź.

Działa to jako samodzielny plik konfiguracyjny.

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 
Powiązane problemy