配置tmux滚动速度

Dav*_*cki 21 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'"
Run Code Online (Sandbox Code Playgroud)

dom*_*91c 13

使用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" - 仅在每第四个鼠标滚轮滚动点击时滚动一行.

  • 这似乎不适用于2.5 (4认同)

xAp*_*ple 6

我同意,在线上只有一条线的滚动速度太慢了.你可以跳半页:

bind -t emacs-copy WheelUpPane   halfpage-up
bind -t emacs-copy WheelDownPane halfpage-down
Run Code Online (Sandbox Code Playgroud)

这里提出的半页解决方案仍然太快,并且通过仅用跳跃的感觉取代滚动来破坏滚动的印象.要使滚动以自定义速度运行,您可以添加几个发送键命令,如下所示:

 # 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'"
Run Code Online (Sandbox Code Playgroud)


小智 6

对于tmux 2.4及更高版本,以下对我有用:

bind -Tcopy-mode WheelUpPane send -N1 -X scroll-up
bind -Tcopy-mode WheelDownPane send -N1 -X scroll-down
Run Code Online (Sandbox Code Playgroud)

将其设置为一次滚动1行。

变更日志 -查找Changes from 2.3 to 2.4


ide*_*n42 5

从tmux 2.6 (最后一次测试2.9)开始,我在这里无法获得任何答案,最终弄清楚了,因此发布了另一个答案。

这可以作为独立的配置文件。

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
Run Code Online (Sandbox Code Playgroud)

  • 在2.9中很棒!如果您只想滚动1行,只需将“ halfpage-up / down”替换为“ scroll-up / down” (2认同)

Dav*_*cki 2

这是一个相当糟糕的解决方案(使用 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'"
Run Code Online (Sandbox Code Playgroud)

还不确定所有的权衡是什么,但对于初学者来说,这很糟糕,因为 1,光标到处移动,2,当您切换方向(从向上滚动到向下滚动,反之亦然)时,会出现滞后,而光标移动到窗格的另一边缘。

它确实具有可配置速度的优点。只需更改 即可5调整速度。

全面披露:我认为这一定是受到我在其他地方读到的东西的启发,因为它现在不是很熟悉。我希望我能注明我的消息来源。