如何使用 tmux 在 iterm2 中添加多个 select 文本块?

How to multi-select text block in iterm2 with tmux?

在基本的iterm2中,multi-select很简单,只要按住command键拖放或双击就可以了。我们将有一些离散的高亮文本,像这样:

即我可以同时突出显示 "At work" 和 "inversel"。

但这在使用 iterm2 的 tmux 会话中不起作用,按住命令键和拖放不会 select 任何东西或突出显示。


感谢您的任何建议。


编辑: 一百万感谢@Simba 的详细解释。但是我找不到 "mouse report" 开关,这是关于 item2 版本还是我遗漏了什么?


编辑2: @Simba 我找到了这个框(会话 -> 编辑会话 -> 终端 -> 启用鼠标报告),但取消选中它不起作用,即使在我重新启动 itemr2 之后它每次都会再次检查 LOL


编辑3: 几次重启后现在它正在工作,我不知道发生了什么......谢谢! @辛巴

"hold command key and drag-and-drop"做多份复制是终端iTerm2的一个特性。在 tmux 中,复制操作由 tmux 处理,tmux 不支持这种多重复制功能。

方法一

另一种方法:通过使用 tmux -CC.

启动 tmux 会话,使用 iTerm2 的 tmux 集成模式

之后,拖动动作直接被iTerm2检测到。和不用tmux时一样按住"Command"复制iTerm2中的内容

方法二

Cmd + Drag在iTerm2中绑定连续选择。由于"mouse reporting"被tmux拦截,要使用这个特性(连续选择),需要暂时禁用"mouse reporting"。

  1. 取消选中 "Session -> Terminal State -> Mouse reporting"。
  2. 使用 Cmd + 拖动进行连续选择
  3. 启用 "Mouse reporting" 使 tmux 正常工作。

缺点:要使用连续选择,必须禁用"Mouse reporting"。但是一旦 "mouse reporting" 被禁用,您就不能 滚动 到上一页或下一页。这意味着您可以在当前页面进行连续选择。

引自iTerm2 FAQ

Q: What modifier keys affect marking a selection for copy and paste? A: If you hold down modifier keys while making a selection, the behavior changes in various ways:

  • Alt/Option: Mouse reporting will be disabled. If you're using vim and you can't make a selection, try holding down the alt key and see if that fixes it.
  • Alt + Cmd: Make a rectangular selection.
  • Shift: Extend an existing selection.
  • Alt + Shift: Extend a rectangular selection.
  • Cmd: Make a discontinuous selection

不幸的是,选择修改键 Alt + Cmd 绑定到“矩形选择”并且它似乎无法自定义。但是你可以绑定一个快捷键来切换"mouse reporting".