在OSX上配置tmux中的鼠标

时间:2016-10-18 20:25:06

标签: macos tmux

似乎鼠标支持在最新版本的tmux中发生了变化,我在该主题上发现的每篇文章都使用了过时的设置。我想要做的就是在滚动模式下使用鼠标滚动并使用它来复制/粘贴左按钮,就像通常在终端中一样。不幸的是,如果我设置set -g mouse on复制/粘贴不起作用,如果我将其设置为关闭,则滚动不起作用。我在OSX 10.12 Sierra,如果这有所不同,我正在使用默认的终端应用程序。

6 个答案:

答案 0 :(得分:3)

tmux改变了从v2.0到v2.1的鼠标行为。

您可以在tmux的github存储库中找到更多信息issue 145 description.

我不再使用它了,但是在转移到v2.1之后这个固定的鼠标处理方式:

# Handling mouse
set -g mouse on
# Fix Mouse Scrolling: https://github.com/tmux/tmux/issues/145
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

使用此设置,您可以使用鼠标和Option(alt)键进行选择,然后使用Cmd-C复制选择。

答案 1 :(得分:2)

对于我来说, fn 按钮+鼠标可以很好地进行文本选择。 选择后,需要按 cmd + c 进行复制并粘贴 cmd + v

答案 2 :(得分:1)

使用上面指定的set -g mouse on可以使用鼠标滚动。

在Linux上,shift按钮可以正常选择鼠标并进行复制/粘贴,但在Mac上它似乎是Alt按钮,尝试一下(它适用于我在iTerm2上使用tmux)。

答案 3 :(得分:1)

使用鼠标恢复复制粘贴功能的一种快速方法是禁用“鼠标报告”;请参阅 Terminal.app 中的菜单项View > Allow Mouse Reporting。默认的键盘快捷键是⌘Command + r ,因此可能的工作流程是:

  1. 点击⌘命令 + r 可以关闭鼠标报告。
  2. 使用鼠标照常突出显示文本,使用⌘Command + c 复制,或单击鼠标中键粘贴。
  3. 点击⌘命令 + r 恢复tmux的鼠标功能。

或者,按住 fn 键以暂时获得相同的功能,如@yaroslavpalamar的回答所述。

多窗格解决方案

注释指出使用多个窗格时此解决方案存在问题。这需要从tmux内部进行修复,以便同时缩放窗格并允许使用鼠标复制/粘贴。为此,我们可以通过将以下行添加到配置中来扩展@MadWombat指向的解决方案。

在您的~/.tmux.conf文件(或/etc/tmux.conf)中:

bind-key m set mouse \; resize-pane -Z

然后,前缀 + m 是一个切换按钮:点击一次即可缩放窗格并允许使用鼠标复制/粘贴,再次点击即可恢复以前的功能。请注意,这也可以在单个窗格中正常工作-在这种情况下,命令的zoom部分无效。

答案 4 :(得分:0)

您可以在选择文本时按住shift,这样就不会调用复制和粘贴模式。

https://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/

  

你会注意到你根本无法选择文字。   解决方案是使用shift键。   按住shift键,然后左键单击并拖动目标文本。如果您现在要将所选文本粘贴回xterm,则还必须按住Shift键然后单击鼠标中键以粘贴文本。这在tmux手册页中没有提到,所以我不认为这是一个tmux功能。猜测这与xterm有关,但我不确定。

https://superuser.com/questions/300060/tmux-and-text-selection-with-mouse-through-putty

答案 5 :(得分:0)

在 OSX 和 tmux 3.0a 上,set -g mouse on 中包含 tmux.conf,您可以使用 ctrl-b [ 然后用鼠标拖动来选择文本。之后,您应该可以使用 ctrl-b ] 进行粘贴。