如何在 tmux 中按住 Shift 的同时滚动以进行复制?

如何在 tmux 中按住 Shift 的同时滚动以进行复制?

我在 Tmux 中将鼠标模式设置为打开,以便我可以使用滚轮set-window-option -g mode-mouse on

但是,如果我想复制跨越终端窗口高度的特定命令的输出,按住 Shift 键时无法向下滚动。

为了获得所需的行为,我需要对配置文件进行哪些修改?

答案1

也许你不能。 xterm(以及类似的程序)区分带/不带修饰符的鼠标操作shift

  • 不变的操作可以被编程,即,应用程序可以发送转义序列,告诉 xterm 为每次鼠标单击发回转义序列。
  • 不变的不能以这种方式对操作进行编程。它们保持原样。

所以tmux不太可能能够改变这种行为。此外,鼠标按钮的使用方式(同样是旧惯例)是这样的:一个按钮用于开始选择,另一个按钮用于扩展选择,第三个按钮用于粘贴选择。某些终端可能会实现拖拽如果按住扩展选择按钮。

但滚轮鼠标(确实)比协议的其余部分更新得多,可能是从 20 世纪 90 年代中期/后期开始的。在鼠标协议中,它发送假按钮事件,例如按钮 4 和 5。可以实现使用滚轮鼠标扩展选择,tmux无法控制它 - 并且它可能是内置的/不可配置的。如果您还没有看到所需的行为,那么您可能无法获得它。

与 的区别shift非常古老,并且不限于鼠标操作:在某些平台上, 和page-uppage-down被设置为滚动shift添加修饰符时的终端,而未移动的键可以从应用程序中读取。

进一步阅读:

  • 轮鼠(XTerm 控制序列)
  • 正常跟踪模式(XTerm 控制序列)
  • 默认按键绑定XTerm 手册,例如鼠标按钮的绑定

                       ~Meta <Btn1Down>:select-start() \n\
                     ~Meta <Btn1Motion>:select-extend() \n\
                   ~Ctrl ~Meta <Btn2Up>:insert-selection(SELECT, CUT_BUFFER0) \n\
                 ~Ctrl ~Meta <Btn3Down>:start-extend() \n\
                     ~Meta <Btn3Motion>:select-extend() \n\
    

相关内容