注意:我知道如何用键盘滚动(由于这里有另一个问题)。
我尝试了鼠标滚动tmux的两个版本:
0.8-5hardy1(在Ubuntu 8.04(Hardy Heron)上)
1.3-1(在Ubuntu 10.10(Maverick Meerkat)上)
#1 楼
在输出的历史记录中滚动您可以使用^b
+ [
,然后可以使用M + V向上翻页,使用^ V向下翻页。我不知道您是否可以使用真正的PgUp和PgDown。我的终端没有将这些密钥发送到tmux。而是自动滚动而不是tmux历史记录。
要退出复制模式,请按ESC
要在此模式下使用鼠标(称为复制模式),请按
^b
+ :
,然后输入以下内容:
setw -g mouse on
注意:在tmux <2.1中,该选项名为
mode-mouse
,而不是mouse
现在当您更改为复制模式时,可以使用鼠标滚动浏览。
如果需要,可以将此命令放在〜/ .tmux.conf中,以便每次运行tmux时都将其加载。
更新:从tmux 1.5开始,此选项使使用滚轮自动切换到复制模式并向后滚动tmux回滚缓冲区。不再需要先点击
Ctrl-B
+ [
。向下滚动到提示也会自动结束复制模式。 评论
请注意,如果您已经具有正在运行的tmux服务器,则可能必须重新加载配置文件。 blog.sanctum.geek.nz/reloading-tmux-config tmux源文件〜/ .tmux.conf
–艾伦·尼恩惠斯(Allan Nienhuis)
2013年12月1日17:31
在OS X上不为我工作。
– Ain
2015年3月10日13:27
@Ain-现在有11个主要的OS X版本。我们到底在谈论哪个版本?
–猎犬
15年7月8日在12:24
对于tmux> = 2.1,请参见@DannyRe的答案(当前距离很远)。
– joelostblom
15年12月31日在18:07
设置-g鼠标在macOS tmux 2.1上为我工作
–米格尔·莫塔(Miguel Mota)
17年1月5日,17:58
#2 楼
Tmux 2.1进行了一些更改鼠标模式已被重写。现在不再有以下选项:
鼠标调整窗格
鼠标选择窗格
鼠标选择窗口
模式鼠标
仅有一种选择:'mouse'会完全打开鼠标支持。
那将是
set -g mouse on
# to enable mouse scroll, see https://github.com/tmux/tmux/issues/145#issuecomment-150736967
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
评论
谢谢,现在选择窗格等工作,但是滚动不起作用。为了使滚动再次起作用,请使用以下命令:github.com/NHDaly/tmux-scroll-copy-mode
–马赫迪
2015年10月20日在20:15
很棒-甚至可以在cygwin上工作-WINDOWS 7上的tmux
–GWD
16年1月21日在15:52
@Mahdi这似乎不适用于osx。有什么提示吗?
–rdbisme
16年2月11日在8:39
在tmux 2.3上似乎不再需要绑定
– Theron Luhn
16 Dec 5'在18:49
为上的set -g鼠标+1。先前的评论是正确的。不再需要绑定。
– Dakusan
18年2月12日在19:19
#3 楼
当前版本的tmux(1.5)允许您简单地将mode-mouse选项设置为on,并允许您使用鼠标滚轮滚动。 mode-mouse [on | off]
Mouse state in modes. If on, the mouse may be used to
enter copy mode and copy a selection by dragging, to
enter copy mode and scroll with the mouse wheel, or to
select an option in choice mode.
在我的.tmux.conf中:
set-window-option -g mode-mouse on
更新-从tmux 2.1开始,此选项已重命名为
mouse
评论
那就是你真正想要的行为!鼠标滚动启用复制模式,而不仅仅是滚动shell备用缓冲区。最终,这对我来说是从屏幕切换到tmux的动力。是否可以通过Shift + PgUp来获得相同的行为?
– kynan
2011-12-9 13:24
@kynan:我个人只是按C-A PgUp即可。您可以使用tmux bind-key -n PPage copy-mode -u直接绑定页面向上键。如果您从本地终端取消绑定,则类似的样式应适用于shift + pageup。
–布克佐尔
2012年12月12日在20:04
这导致了一种奇怪的行为,当我滚动回命令行时,我在CLI中插入了一个额外的字符,这通常导致我的第一个命令格式错误。真烦人。
–克里斯·R
2012年12月27日在17:01
请注意,但是,这对于用鼠标触发滚动效果很好,在选择要单击鼠标中键粘贴的文本时会导致奇怪的行为。由于折衷是不可接受的,所以我最终选择了C-b pg上/下(默认)。
– h7r
15年5月14日在19:18
@ChrisR我也很明白这一点,而且不太一致。它是[M [M#[M [M#[M [M#[M [M#[M]类型的字符串?
–伊利亚·林恩(Elijah Lynn)
16年1月8日,0:34
#4 楼
更新:像其他人提到的那样,在较新的tmux版本中,只需将以下内容放入.tmux.conf中。
setw -g mouse on
以前对较旧tmux版本的建议:
在您的.tmux.conf中
# Make mouse useful in copy mode
setw -g mode-mouse on
# Allow mouse to select which pane to use
set -g mouse-select-pane on
# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"
# Scroll History
set -g history-limit 30000
# Set ability to capture on start and restore on exit window data when running an application
setw -g alternate-screen on
# Lower escape timing from 500ms to 50ms for quicker response to scroll-buffer access.
set -s escape-time 50
来自http://brainscraps.wikia.com/wiki/Extreme_Multitasking_with_tmux_and_PuTTY
评论
+1设置逃生时间
– Dakusan
18-2-12在19:22
对于其他任何人,.tmux.conf文件都位于您的主目录中。
–user2647513
19年9月3日,14:56
只需设置-g鼠标即可替换鼠标设置
– Shital Shah
19/12/11在10:25
直到2020年5月,这对我在Ubuntu 18.04LTS上的工作都非常有效,然后开始向我发出警告和各种不起作用的东西。我猜有些东西会自我升级?如果我删除鼠标选项,将其替换为set -g mouse on(q.v. stackoverflow.com/a/33336609/303056),并删除Terminal-overrides似乎更好
–豹
20 May 26 '17:25
#5 楼
某人(从我迷失的来源中)建议将以下内容添加到~.tmux.conf
中:在tmux会话中用鼠标滚轮滚动,而无需进入tmux的复制模式;我只是滚轮和BAM!有用。请注意,我正在使用terminal.app,但我记得OP给出了专门用于gnome-terminal
的答案。评论
杰德,谢谢你!您的建议也适用于gnome-terminal。我将尝试使用此设置一段时间。但这有一个缺点:鼠标滚动现在无法正常运行。如果我在tmux中加载的内容较少,则鼠标滚动不会滚动以更少的方式打开的文件。滚动整个终端。奇怪的是,在您的设置中,vim在tmux内部的行为与预期的一样。
–user31494
2011年7月14日在18:08
请注意,从tmux 1.5开始,此选项已由setw -g mode-mouse on选项取代,该选项使用鼠标滚轮进行复制模式回滚。
– kynan
2011-12-09 13:30
解释是,此选项禁用了终端的备用屏幕上的滚动锁定,这在大多数情况下是理想的,因为请求备用屏幕缓冲区(vi,less,tmux等)的应用程序提供了自己的滚动功能。覆盖tmux中的此锁定允许滚动终端的备用屏幕缓冲区,这在少数情况下不会产生期望的结果。请参阅此答案以获取来自man xterm的解释替代屏幕的引用。
– kynan
2011-12-9 14:26
las,这在iTerm中不起作用
– Suan
2012年1月18日,0:11
我在iTerm 2中获得了积极的结果
–基思笑脸
13年5月17日下午4:14
#6 楼
如果您已经处于tmux会话中,则可以运行命令set mouse on
提醒:要运行命令,请使用前缀,然后输入
:
。评论
谢谢为我工作:)
–索赫尔·艾哈迈德(Sohel Ahmed)
19-10-20在14:32
#7 楼
tmux 2.1引入了新的鼠标绑定。我今天才写了这些绑定。当不在Vim中时,它可以无缝地将鼠标滚轮绑定到箭头,因为Vim能够解释原始的鼠标滚轮代码(例如,根据鼠标悬停在哪个Vim窗口上,为您选择要滚动的Vim窗口)。
这意味着我们最终只能使用鼠标来查看多个手册页,以及接受箭头键的任何其他内容。您可以根据需要扩展和链接
if
逻辑,以为您的应用程序实现更多逻辑。bind -n WheelUpPane if "[[ #{pane_current_command} =~ vim ]]" "select-pane -t = ; send-keys -M" "select-pane -t = ; send-keys Up"
bind -n WheelDownPane if "[[ #{pane_current_command} =~ vim ]]" "select-pane -t = ; send-keys -M" "select-pane -t = ; send-keys Down"
借助这种新的滚轮绑定功能,可以将鼠标滚轮编写为做任何您喜欢的上下文相关行为。
评论
我现在只是想让窗格边框上的鼠标滚轮做一些有趣的事情。可能我要做的不是在边界上映射轮,而是在状态线上完成时映射它以循环tmux窗口。
–陆even
2015年12月15日23:53
什么是您的Github链接?我想跟上您的努力!我正在寻找的另一个功能是双击单词,将其复制到X剪贴板,就像在Tmux之外一样。
– joeytwiddle
16-3-30的3:11
@joeytwiddle我强烈推荐github.com/NHDaly/tmux-better-mouse-mode,请参阅我的其他答案
–陆even
18年1月2日在23:54
#8 楼
Gnome终端在“常规”滚动受限的情况下做了一些巧妙的技巧,将鼠标滚动事件转换为向上和向下箭头键。例如,当您使用less
查看某些文本时(尤其是在读书时),您可以使用j
,k
和箭头键滚动内容。而且,借助gnome-terminal
,由于提到了技巧,您也可以使用鼠标滚动来做到这一点。插入:鼠标滚动转换为按向上/向下箭头键。 您可以在配置文件设置中关闭此功能,并在任何情况下进行常规滚动。只需取消标记“滚动”选项卡中的最后一个复选框即可:。
评论
谢谢您的解释,uldtko!但这并不能解决鼠标滚动问题。是的,关闭该选项后,gnome-terminal会停止发送三重^ [[A和^ [[B在鼠标滚动时。它在tmux中更好(在某些程序中没有丑陋的^ [[A ^ [[A ^ [[A在某些程序中,没有丑陋的命令历史记录滚动),但是现在停止滚动鼠标滚动时更少了。
–user31494
2010-12-27 14:48
乌克兰? (通过i字符猜测)
– dotancohen
13年4月18日在11:17
#9 楼
https://github.com/NHDaly/tmux-better-mouse-mode针对新型tmux的鼠标控制的可配置且功能丰富的实现。强烈建议。
您可能还想使用
set -g @emulate-scroll-for-no-mouse-alternate-buffer "on"
也要使用它。
评论
我安装了它,但是不再能够用鼠标突出显示和复制文本。你能做到吗?
– jonathanking
19年1月11日在18:03
是的,您可能存在与之相关的其他鼠标相关tmux配置。
–陆even
19年1月11日在22:02
#10 楼
您可以结合其他答案中的绑定思想来获得令人满意的滚动行为:在vim中工作
在终端中自动更改为复制模式,并在到达底部时退出它
仍然允许您可以在人,人和事等方面使用鼠标滚轮。
我的代码:
bind -n WheelUpPane if -t = "test $(echo #{pane_current_command} |grep -e 'man' -e 'less' -e 'journalctl')" "select-pane -t = ; send-keys Up Up Up Up" "if-shell -F -t = '#{?mouse_any_flag,1,#{pane_in_mode}}' 'send-keys -M' 'select-pane -t = ; copy-mode -e; send-keys -M'"
bind -n WheelDownPane if -t = "test $(echo #{pane_current_command} |grep -e 'man' -e 'less' -e 'journalctl')" "select-pane -t = ; send-keys Down Down Down Down" "if-shell -F -t = '#{?mouse_any_flag,1,#{pane_in_mode}}' 'send-keys -M' 'select-pane -t = ; copy-mode -e; send-keys -M'"
您可以添加其他需要箭头键的命令在grep -e'man'部分中滚动
我多次添加了发送键,因此鼠标滚轮上的一个刻度将一次滚动4行
#11 楼
没有其他答案对我自己完全有效。我必须使用set -g mouse on
启用鼠标选项,然后使用Shift + Mouse Wheel
滚动终端。
评论
我认为bukzor的答案解决了tmux 1.5及更高版本的问题。在tmux 2.1及更高版本上,将set -g鼠标添加到〜/ .tmux.conf,并开始新的tmux / tmate会话。要复制文本,请在按住Shift键的同时用鼠标选择。