这个问题与以下问题类似但不完全相同:tmux——有没有办法启用滚动但不选择?
我在 gnome-terminal 中使用 tmux。当我使用setw -g mode-mouse on
tmux 启用滚动浏览历史缓冲区时,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/这正是我想要的,尽管这不是我要求的。