在 tmux 中启用鼠标与在 X 中粘贴冲突

在 tmux 中启用鼠标与在 X 中粘贴冲突

这个问题与以下问题类似但不完全相同:tmux——有没有办法启用滚动但不选择?

我在 gnome-terminal 中使用 tmux。当我使用setw -g mode-mouse ontmux 启用滚动浏览历史缓冲区时,tmux 不尊重 X 中的复制/粘贴功能,即选择文本不会将文本放在主缓冲区中,并且我无法使用鼠标中键进行粘贴

当我按下鼠标中键时,我会看到屏幕右上角的坐标——看起来它正在尝试将鼠标中键单击注册为滚轮的使用。

是否有 tmux 设置可用于修复此问题?滚轮和鼠标中键在 tmux 中是否被视为独立?我可以将鼠标中键映射到 OS 粘贴吗?tmux 可以从 OS 粘贴中复制/粘贴请求/向 OS 粘贴提供请求吗?

答案1

快的

在 OS X 上(使用 iTerm2),我必须按住 shift + alt 才能暂时覆盖 tmux 的鼠标控制。您的终端仿真器可能具有类似的功能。

有用,但麻烦

除此之外,您可以关闭鼠标支持,使用系统剪贴板复制文本,然后重新打开。摘自我的~/.tmux.conf

### Mouse On/Off ### {{{
## Mouse On by default
set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on

##Toggle mouse on with <prefix>m
bind m \
        set -g mode-mouse on \;\
        set -g mouse-resize-pane on \;\
        set -g mouse-select-pane on \;\
        set -g mouse-select-window on \;\
        display 'Mouse: ON'

## Toggle mouse off with <prefix>M
bind M \
        set -g mode-mouse off \;\
        set -g mouse-resize-pane off \;\
        set -g mouse-select-pane off \;\
        set -g mouse-select-window off \;\
        display 'Mouse: OFF'
### End Mouse On/Off ### }}}

可能更好

您还可以让 tmux 拖拽到系统剪贴板:

# move x clipboard into tmux paste buffer
bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
# move tmux copy buffer into x clipboard
bind C-y run "tmux save-buffer - | xclip -i"

可以将其中的内容xclip替换为您选择的内容。如果在远程服务器上完成,最后一个将需要 X 转发。

答案2

其实,答案就隐藏在tmux——有没有办法启用滚动但不选择?

您有以下选择:

  • 设置键盘快捷键,将 tmux 选择复制到系统剪贴板
  • 使用支持设置剪贴板功能的终端,例如 xterm
  • 禁用 tmux 中的任何鼠标使用

我在 Google 上搜索set-clipboard并找到了http://grota.github.io/blog/2012/05/08/tmux-clipboard-integration/这正是我想要的,尽管这不是我要求的。

相关内容