【问题标题】:How to make the middle mouse button paste from the primary selection in tmux when mouse mode is enabled?启用鼠标模式后,如何从 tmux 中的主要选择粘贴鼠标中键?
【发布时间】:2020-12-28 11:50:23
【问题描述】:

在大多数终端仿真器中,鼠标中键 将从 X Windows 主选择粘贴。在启用鼠标模式的 tmux 中 (set -g mouse on) 鼠标中键 不再从主选择粘贴,因为鼠标点击是由 tmux 而不是终端模拟器捕获的。要粘贴,您必须执行 Shift + Middle Mouse Button 才能将点击传递到终端模拟器。

即使启用了鼠标模式,如何在不按住 Shift 的情况下进行 鼠标中键 粘贴?

【问题讨论】:

    标签: tmux


    【解决方案1】:

    将此添加到您的 ~/.tmux.conf 文件中:

    # Make middle-mouse-click paste from the primary selection (without having to hold down Shift).
    bind-key -n MouseDown2Pane run "tmux set-buffer -b primary_selection \"$(xsel -o)\"; tmux paste-buffer -b primary_selection; tmux delete-buffer -b primary_selection"
    

    需要安装xsel。 (sudo apt install xsel 在 Ubuntu 上。)

    说明

    添加 鼠标中键 (MouseDown2Pane) 绑定:

    1. 使用tmux set-bufferxsel -o 命令的输出(即主选择的内容)加载到名为primary_selection 的临时tmux 粘贴缓冲区中

    2. 使用tmux paste-bufferprimary_selection 缓冲区粘贴到当前窗格中

    3. 使用tmux delete-buffer 删除primary_selection 缓冲区。这是为了避免弄乱您的缓冲区。 tmux 的粘贴命令(默认为 Ctrl + b ])从最近创建的粘贴缓冲区粘贴。我们不希望 primary_selection 缓冲区成为您最近创建的缓冲区并替换以前的缓冲区为 Ctrl + b ] 绑定。我们也不希望primary_selection 缓冲区出现在​​您的缓冲区列表中。所以我们删除它

    【讨论】:

      【解决方案2】:

      tmux 3.2 中进行了此更改。

      从 3.1c 到 3.2 的变化

      • 为按钮 2 添加默认绑定以进行粘贴。

      【讨论】:

      • 这是什么意思?你能详细说明一下吗?在 tmux 3.2a 中它仍然不适合我
      • @morrow 表示 tmux 从 3.2 版本开始默认绑定了 MouseDown2Pane 事件。要验证,请运行 tmux list-keys | grep MouseDown2
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 2017-08-15
      • 2013-06-30
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多