tmux set -g mouse-mode on不起作用


244

我一直在环顾四周,人们说

set -g mouse-mode on

应该可以让您在运行tmux时浏览终端输出。但是,将其放入我的~/.tmux.conf文件并说出tmux set -g mouse-mode on在tmux会话中什么时候都没有改变。当我滚动时,我仍然不喜欢tmux,就像使用默认设置滚动vim一样。

有人知道为什么吗?


mode-mouse在旧版本中
hyiltiz

Answers:


559

因此,此选项已在版本2.1(2015年10月18日)中重命名。

变更日志

 Mouse-mode has been rewritten.  There's now no longer options for:
    - mouse-resize-pane
    - mouse-select-pane
    - mouse-select-window
    - mode-mouse

  Instead there is just one option:  'mouse' which turns on mouse support

这就是我现在在.tmux.conf文件中使用的

set -g mouse on

1
谢谢@ Graham42!现在这是正确的答案。我更新了tmux,今天早上它坏了–修复了它。
马修·莱纳

7
即使这个问题是在2012年更改之前提出的,但这只是我(和许多其他人)需要的答案,哈哈
Andrew

2
有用,解决我在Ubuntu 16.04中的问题
sudoz

2
在Mac上运行时,如果使用set -g mouse on,它将破坏在Mac终端中选择文本的能力。我必须专门set -g mouse off选择文本
赢得

1
@Wins在选择或粘贴之前按新闻移位
mdekkers

70

如@ Graham42所指出的,鼠标选项在版本2.1中已更改。现在滚动需要您首先进入复印模式。要启用与2.1之前几乎相同的滚动,请在您的脚本中添加以下内容.tmux.conf

set-option -g mouse on

# make scrolling with wheels work
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M

这样可以在将鼠标悬停在窗格上时进行滚动,并且可以逐行滚动该窗格。

来源:https//groups.google.com/d/msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ


2
太棒了!只是设置mouse为可接受的答案对我来说不起作用-进入复制模式的别名非常完美
Gareth 2015年

2
这似乎可行,但是我无法再在窗格中选择文本。还有其他人有这个问题吗?
will.fiset '18


36

这应该工作:

setw -g mode-mouse on

然后资源然后配置文件

tmux source-file ~/.tmux.conf

或杀死服务器


我使用了set -g鼠标,并且您给出的source-file命令运行良好。
gospelslide

19

粘贴到〜/ .tmux.conf

set -g mouse on

并在终端上运行

tmux source-file ~/.tmux.conf

谢谢,为byobu --version byoobu版本5.73 tmux 2.5工作,而上面的建议没有。
托马斯

15

正如@ Graham42所说,从2.1版开始,鼠标选项已重命名,但是您可以将鼠标与任何版本的tmux一起使用,将其添加到〜/ .tmux.conf中:

重击弹:

is_pre_2_1="[[ $(tmux -V | cut -d' ' -f2) < 2.1 ]] && echo true || echo false"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
      set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"

Sh(伯恩壳)壳:

is_pre_2_1="tmux -V | cut -d' ' -f2 | awk '{print ($0 < 2.1) ? "true" : "false"}'"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
      set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"

希望这可以帮助


1
谢谢!我在git中有tmux.conf,并经常使用具有旧版tmux版本的机器...
Seb 2002年

这个答案背后的想法是天才!...还可以帮助style-options响应。tmux 2.9中的fg-,bg-和attr-abolition。但是它不起作用,因为至少我的shell拒绝比较浮点数...并且,如果您的本地化使用的不是.浮点数,则还必须解决此问题。
DJCrashdummy19年

@DJCrashdummy Shell中的输出是什么tmux -V | cut -d ' ' -f2
亚历杭德罗·布拉斯科

1
注意:在ubuntu 19.10上,版本是tmux 2.9a。因此,我过去常常tmux -V | sed -E 's/tmux ([0-9.]*).*$/\\1/;'对其进行更强大的解析。
autra

1
注意:至少对我来说,在Ubuntu 18.04上,即使/bin/sh是Bash,我也需要Sh语法,这可能是因为Bash进入了POSIX模式
philb

1

试试这个。它可以在我的计算机上使用。

set -g mouse on

1

您仍然可以根据当前的Tmux版本使用设置选项的魔鬼逻辑:请参阅我以前的回答

但是从Tmux v1.7开始,set-option添加“ -q”来使错误静音并且不打印任何内容(请参阅changelog))。我建议使用此功能,它更具可读性且易于扩展。

将此添加到您的~/.tmux.conf

# from v2.1
set -gq mouse on
# before v2.1
set -gq mode-mouse on
set -gq mouse-resize-pane on
set -gq mouse-select-pane on
set -gq mouse-select-window on

重新标记tmux或source-file您的新.tmux.conf


旁注:如果人们喜欢这个答案,我愿意删除我的旧答案

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.