可以配置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" - 仅在每第四个鼠标滚轮滚动点击时滚动一行.
我同意,在线上只有一条线的滚动速度太慢了.你可以跳半页:
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
从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)
这是一个相当糟糕的解决方案(使用 vim 导航模式,请注意 和k)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'"
Run Code Online (Sandbox Code Playgroud)
还不确定所有的权衡是什么,但对于初学者来说,这很糟糕,因为 1,光标到处移动,2,当您切换方向(从向上滚动到向下滚动,反之亦然)时,会出现滞后,而光标移动到窗格的另一边缘。
它确实具有可配置速度的优点。只需更改 即可5调整速度。
全面披露:我认为这一定是受到我在其他地方读到的东西的启发,因为它现在不是很熟悉。我希望我能注明我的消息来源。