2016-03-15 18 views
11

È possibile configurare la velocità di scorrimento tmux (utilizzando una rotellina del mouse o un touchpad)?Configurare la velocità di scorrimento tmux

Tmux 2.1 una sorta di scorrimento in corso (a seconda della configurazione), costringendomi ad aggiornare la mia configurazione. L'ho fatto poche settimane fa.

Ma ora penso tmux scrolls * più lento del solito. Penso di aver letto che puoi configurare la velocità di scorrimento, ma non riesco a trovarlo in nessun punto.

* Scorrimento con una rotella del mouse che è. (In realtà sto usando un trackpad Macbook ma penso che sia equivalente a una rotella del mouse.)

So che puoi fare 10C-u (con le associazioni di tasti vi) per saltare di 10 pagine, ma mi piacerebbe anche essere in grado di scorrere semplicemente velocemente con il mouse.

Credo che questo è tutto il config rilevanti personalmente ho attualmente:

# 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

Sempre di più penso che la velocità di scorrimento in tmux non sia cambiata in 2.1. Penso di confonderlo con iTerm semplice senza tmux, dove lo scrolling ha una velocità variabile a seconda di quanto velocemente scorri sul trackpad. Probabilmente non è qualcosa che può essere risolto in tmux attraverso la configurazione. Scommetto che dovrebbe essere una richiesta di funzionalità tmux. –

+0

Ha velocity, semplicemente non così liscia e veloce come senza tmux, anche con un file di configurazione quasi vuoto. (Immagino che se metti abbastanza ganci nella tua configurazione rallenterebbe le cose, ma questo non sembra essere il mio problema.) –

risposta

1

Ebbene ecco un abbastanza cattiva soluzione (utilizzando la modalità di navigazione vim, prendere nota del k e 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'" 

Non lo so ancora quello che tutti i compromessi sono, ma per cominciare è un male perché 1, il cursore si sposta in tutto il luogo e 2, v'è un ritardo quando si passa le direzioni, da scorrimento fino a scorrimento verso il basso o viceversa, mentre il cursore si sposta sull'altro bordo del riquadro.

Ha il vantaggio di una velocità configurabile. Basta cambiare il 5 per regolare la velocità.

Full disclosure: Penso che debba essere stato fortemente ispirato da qualcosa che ho letto da qualche altra parte, perché non è molto familiare ora. Vorrei avere accreditato le mie fonti.

+0

No! è stata una buona idea :) Ho solo bisogno di sostituire 'k' con' C-y' e 'j' con' C-e' scroll integrato di vim. Non c'è bisogno di plugin. Grazie. – Hettomei

+0

Quasi perfetto! Leggera modifica per far sì che gli eventi di scorrimento vadano nel riquadro su cui è posizionato il mouse anche quando non è il riquadro attivo: 'chiave di collegamento -n WheelUpPane if-shell -F -t =" # {mouse_any_flag} "" invia -keys -M "" if-shell -F -t = '# {pane_in_mode}' 'send-keys -t = H 5 k' 'copy-mode -e' " bind-key -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'" ' Anche fatto così il cursore salta in alto/in basso durante lo scorrimento per correggere il problema del ritardo. –

5

Concordo, la velocità di scorrimento con una sola linea sulla linea è troppo lenta. Si può fare saltare mezze pagine:

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

Ancora la mezza pagina di correzione qui proposto è troppo veloce e destroyes l'impressione di scorrere sostituendolo solo con la sensazione di salto. Per rendere il movimento di scorrimento a una velocità personalizzato è possibile aggiungere diversi tasti inviare comandi in questo modo:

# 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

C'è un mod per tmux permette di specificare qualsiasi numero di comandi per combinazioni di tasti 'MODE': http://ershov.github.io/tmux/

È possibile scorrere verso l'alto o scorrere verso il basso più volte o farlo in un ciclo o persino creare una procedura da eseguire.

Ad esempio:

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

Utilizzando il plugin tmux-scroll-copy-mode dovrebbe aiutare qui.

Una volta installato, è sufficiente aggiungere set -g @scroll-speed-num-lines-per-scroll 5 al proprio .tmux.conf.

scroll-speed-num-lines-per-scroll - Imposta il numero di righe da scorrere per l'evento di scorrimento della rotellina del mouse. L'opzione predefinita è 3, che era la velocità di scorrimento in tmux 2.0.I numeri più grandi scorrono più velocemente. Per rallentare lo scorrimento più lento di una riga per clic, impostare il valore su un decimale compreso tra 0,0 e 1,0. Con un valore decimale, avrà effetto solo quella frazione di eventi wheel. Il valore dovrebbe essere> = 0. Esempi:

"3" (predefinito) - Scorrere tre righe per ogni clic del mouse. "1" - Una riga per scorrimento del mouse ruota (più liscia). "0,5" - Scorrere una riga solo su tutti gli altri clic del mouse. "0,25" - Scorrere una riga solo su ogni quarto clic del mouse sulla rotellina del mouse.

+3

Sembra non funzionare con 2.5 – Ethereal

0

Per tmux 2.4 e superiori, i seguenti lavori per me:

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

Questa imposta è per scorrere 1 riga alla volta.

Dal changelog - cercare Changes from 2.3 to 2.4

0

non ho potuto ottenere nessuna delle risposte qui che lavorano come di tmux 2.6, finalmente capito così distacco un'altra risposta.

Questo funziona come un file di configurazione autonomo.

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