如何在VSCode集成终端的远程tmux中复制文本?
解决VSCode集成终端内tmux文本复制问题
1. 解决鼠标选中高亮消失的冲突
tmux默认的鼠标模式会接管终端鼠标事件,导致VSCode无法正常选中文本。可通过调整tmux配置解决:
编辑远程Linux工作站上的~/.tmux.conf文件,添加以下配置:
# 仅启用tmux的鼠标窗格/窗口管理功能,关闭文本选择接管 set -g mouse-select-pane on set -g mouse-resize-pane on set -g mouse-select-window on set -g mouse off
保存后在tmux中执行tmux source ~/.tmux.conf生效。
若需保留tmux的鼠标文本选择功能,也可修改VSCode终端设置,让VSCode优先处理鼠标选择:
打开VSCode设置(快捷键Cmd+,),在settings.json中添加:
"terminal.integrated.mouseSelection": "text", "terminal.integrated.rightClickBehavior": "copyPaste"
2. 配置tmux剪贴板与本地macOS同步
方法一:利用VSCode的SSH剪贴板同步
确保VSCode启用SSH剪贴板同步,在settings.json中添加:
"remote.SSH.enableClipboardSync": true
此时在VSCode集成终端中,用鼠标选中tmux内文本后,按Cmd+C(或Ctrl+Shift+C)即可复制到本地剪贴板。
方法二:配置tmux自动同步到系统剪贴板
在远程Linux的~/.tmux.conf中添加以下配置(需先安装xclip,执行sudo apt install xclip):
# 启用系统剪贴板支持 set -g set-clipboard on # Vi模式下复制自动同步到剪贴板 bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard' bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
保存后执行tmux source ~/.tmux.conf,同时确保VSCode启用X11转发,在settings.json中添加:
"remote.SSH.defaultForwardX11": true
之后在tmux中用Vi模式选中文本按y,内容即可同步到本地剪贴板。
3. 快速临时解决方法
无需修改任何配置,在tmux窗口中按住Option键再用鼠标选中文本,避免tmux接管鼠标事件,选中后按Cmd+C即可复制到本地剪贴板。
内容的提问来源于stack exchange,提问作者romanzdk
相关产品推荐
相关产品推荐

