2016-03-15 172 views
11

可以配置tmux滾動速度(使用鼠標滾輪還是觸摸板)?配置tmux滾動速度

Tmux 2.1種破壞滾動(取決於您的配置),迫使我更新我的配置。幾周前我做到了。

但現在我認爲tmux的滾動*比以前慢。我想我讀過你可以配置滾動速度,但現在我找不到任何提及。

*使用鼠標滾輪即可滾動。 (我實際上使用的是一個Macbook觸控板,但我認爲它相當於一個鼠標滾輪。)

我知道你可以用10C-u(用vi鍵綁定)來跳10頁,但我也想能夠用鼠標快速滾動。

我想這是所有相關的配置我個人目前:

# 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

越來越多我認爲tmux中的滾動速度在2.1中沒有變化。我想我把它與簡單的iTerm混淆在一起,沒有tmux,其中滾動的速度取決於你滑過觸控板的速度。可能不是可以通過配置在tmux中修復的東西。我敢打賭,這需要是一個tmux功能請求。 –

+0

它確實有速度,只是沒有沒有tmux那樣的流暢和快速,即使有一個幾乎空的配置文件。 (我想,如果你在你的配置中放置了足夠的鉤子,它會減慢速度,但這似乎不是我的問題。) –

回答

1

那麼這裏是一個相當不錯的解決方案(使用vim導航模式,請注意kj)。

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

尚未知道什麼所有的折衷方案,但對於初學者這是不好的,因爲1,光標移動所有的地方和2,有一個滯後,當您切換方向,從向上滾動向下滾動反之亦然,而光標移動到窗格的另一邊。

它具有可配置速度的優點。只需更改5即可調整速度。

完全披露:我認爲這肯定受到了我在其他地方讀到的東西的啓發,因爲它現在不是很熟悉。我希望我能記下我的消息來源。

+0

不!這是一個好主意:)只需要用'C-y'和'j'替換''K''C-e'內置vim滾動。不需要插件。謝謝。 – Hettomei

+0

幾乎完美!即使不是活動窗格,滾動事件也會滾動到鼠標所在的窗格: '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''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''' 滾動時光標跳轉到頂部/底部以解決滯後問題。 –

5

我同意,只有一行在線的滾動速度太慢了。你可以把它跳半頁:

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

還在這裏提出的半頁的解決方法是太快了,並通過destroyes只跳躍的感覺代替它的滾動的印象。爲了使在一個自定義的速度滾動瀏覽,你可以添加多個發送密鑰命令是這樣的:

​​
-1

有用於TMUX允許指定任意數量的「模式」鍵綁定的命令國防部:http://ershov.github.io/tmux/

您可以向上滾動或向下滾動數次,或者循環執行,甚至創建要執行的過程。

例如:

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

使用tmux-scroll-copy-mode插件應該在這裏幫助。

安裝完成後,只需將set -g @scroll-speed-num-lines-per-scroll 5添加到.tmux.conf中即可。

scroll-speed-num-lines-per-scroll-設置每個鼠標滾輪事件滾動的行數。默認選項是3,這是tmux 2.0中的滾動速度。較大的數字滾動得更快。要減慢每滾動一次的滾動速度,請將值設置爲0.0到1.0之間的小數。使用小數值時,只有這些小輪事件會生效。值應該大於0.示例:

「3」(默認值) - 每滾動一次鼠標滾輪三次。 「1」 - 每條鼠標滾輪滾動一次(最平滑)。 「0.5」 - 只在每隔一個鼠標滾輪滾動單擊時滾動一行。 「0.25」 - 僅在每第四次鼠標滾輪滾動時單擊滾動一行。

+3

這似乎不適用於2.5 – Ethereal

0

對於TMUX 2.4及以上,以下工作對我來說:

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

這將其設置爲一次滾動1行。

changelog - 尋找Changes from 2.3 to 2.4

0

我不能得到任何在這裏工作的TMUX 2.6的答案,最終理解了它如此張貼另一個答案。

這可以作爲一個獨立的配置文件。

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