在 OSX 上的 tmux 中配置鼠标

Mad*_*bat 6 macos tmux

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

yar*_*mar 7

在我的情况下,fn按钮 + 鼠标适用于文本选择。选择后需要按cmd+c进行复制和粘贴cmd+v


pfm*_*ggi 5

tmux 将鼠标行为从 v2.0 更改为 v2.1。

您可以在阅读 tmux 的 github 存储库问题 145 描述中找到更多信息

我不再使用它了,但是在移动到 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
Run Code Online (Sandbox Code Playgroud)

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


spi*_*nup 5

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

  1. 点击? Command+r关闭鼠标报告。
  2. 像往常一样用鼠标突出显示文本,用? Command+复制c,或用鼠标中键粘贴。
  3. 点击? Command+r恢复 tmux 的鼠标功能。

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

多窗格解决方案

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

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

bind-key m set mouse \; resize-pane -Z
Run Code Online (Sandbox Code Playgroud)

然后prefix+m是一个切换:点击一次以缩放窗格并允许使用鼠标复制/粘贴,再次点击它可以恢复以前的功能。请注意,这也适用于单个窗格 - 在这种情况下,命令的缩放部分不起作用。

  • 我已经做了类似的事情,但是在 tmux 配置中。我使用“bind-key m set mouse”,然后我可以使用该绑定在鼠标滚动和鼠标选择之间切换。 (2认同)

Sar*_*iev 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

  • 事实并非如此。如果我只是用鼠标选择文本,它会打开 tmux 滚动模式并选择文本,但即使使用键盘快捷键,我实际上也无法复制/粘贴任何内容。如果我按shift,我根本无法选择。 (2认同)