在 Tmux 中进行选择时,我想从系统 (X11) 剪贴板中复制和粘贴,并且我想将这些操作绑定到鼠标;左键单击复制,中键单击粘贴。
对于旧版本的 Tmux (<1.5) 或其他系统,请尝试tmux-yank. 然而,对于这种特定情况,Tmux 非常好地与系统集成。
在您的 中~/.tmux.conf,添加:
set -g mouse on
set -g set-clipboard external
bind -T root MouseUp2Pane paste
Run Code Online (Sandbox Code Playgroud)
启用鼠标支持,复制到系统剪贴板,并绑定在窗格上单击鼠标中键进行粘贴。
而在你的~/.Xresources:
xterm*selectToClipboard: true
xterm*disallowedWindowOps: 20,21,SetXProp
Run Code Online (Sandbox Code Playgroud)
让 Xterm 也选择到系统剪贴板,并允许 Tmux 修改剪贴板(“窗口操作”)。
然后,要将更改应用于您的~/.Xresources,运行xrdb -merge ~/.Xresources并重新启动 Xterm 和 Tmux。
为了支持 macOS 和 Windows Subsystem for Linux (WSL),我们可以添加
run-shell $HOME/.tmux.conf.sh
Run Code Online (Sandbox Code Playgroud)
到~/.tmux.conf,然后~/.tmux.conf.sh使用以下内容创建:
set -g mouse on
set -g set-clipboard external
bind -T root MouseUp2Pane paste
Run Code Online (Sandbox Code Playgroud)
请注意,可以在 中进行其他“高级”配置选择.tmux.conf.sh,例如根据当前主机名、分布等设置配置值;usingif-shell也是一种选择,但在实践中通常非常笨拙,因此使用 shell 脚本是一种可接受的解决方案。
还要注意奇怪的语法"${bind_copy[@]}",它在不执行 glob 扩展的情况下插入$bind_copy 数组。