这是我的.tmux.conf
setw -g mouse on
set-option -s set-clipboard off
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
在本地的linux机器上运行良好。鼠标选择会自动复制到系统剪贴板。
然而,在远程会话(iTerm + Mac)中,它不能工作。文本不会复制到客户端的系统剪贴板。显然我必须使用OSC 52。这是一个helper script。
您可以像这样使用脚本:
echo "whatever text" | osc52.sh
现在,“任意文本”被复制到客户端的系统剪贴板。
然而,我无法让脚本与tmux鼠标选择一起工作:
setw -g mouse on
set-option -s set-clipboard off
osc52="~/osc52.sh"
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "$osc52"
任何帮助都是非常感谢的。谢谢!
发布于 2020-03-13 16:28:25
这不是使用OSC 52的方法。您不能从脚本发送它-从copy-pipe运行的命令的所有输出都将被忽略。
相反,您需要配置tmux本身来完成此操作。尝试以下操作:
1)删除bind-key命令,只保留MouseDragEnd1Pane作为默认值: copy-selection。
2)将set-clipboard off改为set-clipboard on。记得在更改.tmux.conf后完全重启tmux。
3)确保tmux外部的术语是xterm或xterm-256color,以便tmux添加来自默认终端覆盖的Ms能力。这应该是iTerm2中的默认设置。确保您没有将其从.tmux.conf的终端覆盖中删除。
4)在iTerm2中,我认为你需要打开这个选项,“终端中的应用程序可以访问剪贴板”:
https://stackoverflow.com/questions/60663323
复制相似问题