设为 paste 时,右键点击终端任意位置均直接粘贴剪贴板内容到光标处,不弹菜单、不判断选中状态,实现一键粘贴;但复制需手动触发(如 Ctrl+C),且 macOS 两指点击可能冲突,建议关闭 contextMenu 避免干扰。

terminal.integrated.rightClickBehavior 设为 paste 时的行为
设为 paste 后,右键点击终端任意位置(无论是否选中文本、光标在哪)都会立刻把剪贴板内容插入到当前光标位置,不弹菜单、不判断上下文。这是最接近“一键粘贴”的配置,适合写命令、调试、远程 SSH 等高频粘贴场景。
注意:paste 模式下,“复制”操作必须手动触发(比如选中后按 Ctrl+C 或用菜单),右键不再提供复制入口。如果你常需要“选中→右键复制”,这个模式反而会打断工作流。
-
paste在 Windows 和 Linux 上响应最稳定;macOS 上两指点击触控板有时仍会触发系统级菜单,建议搭配关闭terminal.integrated.contextMenu避免冲突 - 该值会覆盖 GUI 设置界面中同名开关,修改后无需重启 VSCode,新开终端即生效
- 若右键后无反应,先检查是否有扩展劫持了
contextmenu事件(如vscodevim、whichkey)
为什么 copyPaste 模式下右键有时复制、有时粘贴
copyPaste 是个条件分支行为:终端检测到有选中文本时执行复制,否则执行粘贴。问题在于“是否选中”的判定非常敏感——哪怕只是鼠标划过一个字符、或光标刚从别处跳过来没来得及失焦,VSCode 都可能误判为“已选中”,导致右键变成复制而非你想要的粘贴。
尤其在 zsh/bash 中启用 bracketed paste mode 后,终端对输入焦点和选择状态更敏感,copyPaste 容易出现“想粘贴却复制了上一行”的情况。
- Linux 下 X11 的 PRIMARY selection 机制会让“鼠标选中即进主缓冲区”,进一步干扰 VSCode 对“是否选中”的判断
- 如果经常要粘贴,又偶尔要复制,不如设为
default+ 手动点菜单里的“粘贴”,反而更可控 -
copyPaste不推荐用于远程终端(如 SSH 到 Ubuntu 服务器),因远程 shell 可能未同步本地 selection 状态
如何彻底禁用右键自动粘贴(防误触)
真正要“禁用自动粘贴”,关键不是关掉粘贴功能,而是切断“右键 → 粘贴”的绑定。唯一可靠方式是把 terminal.integrated.rightClickBehavior 设为 default —— 这样右键只显示菜单,所有操作都需用户二次确认。
别信“关掉 copyOnSelection 就行”这种说法:terminal.integrated.copyOnSelection 控制的是“选中即复制”,和右键粘贴无关;它关掉后,只是避免 Linux 下鼠标选中就进 PRIMARY 缓冲区,但右键仍可能粘贴 CLIPBOARD 内容。
- 设为
default后,粘贴必须手动点菜单里的“Paste”,或用Ctrl+V/Cmd+V - 如果连菜单都不想出现,可设为
nothing,但会丢失复制、清屏、新建终端等所有右键功能,不实用 - 某些 Vim 扩展(如
vscodevim)会重写右键逻辑,即使设了default也可能跳转到“复制当前行”,此时需禁用该扩展或设其vim.useSystemClipboard为false
Linux 下右键粘贴失效的隐藏原因
在 GNOME/KDE 等桌面环境里,VSCode 终端右键粘贴失败,80% 不是 VSCode 配置问题,而是被系统级 selection 干扰了。X11 下鼠标选中文本会自动进入 PRIMARY 缓冲区,而很多终端模拟器(包括 VSCode 内置终端)的“右键粘贴”默认读的是 PRIMARY 而非 CLIPBOARD —— 你 Ctrl+C 复制的内容在 CLIPBOARD,但右键却去 PRIMARY 里找,当然为空。
验证方法:在终端里运行 xclip -o -selection primary 和 xclip -o -selection clipboard,对比输出。如果前者为空、后者有内容,就是这个原因。
- 临时解决:用
Ctrl+Shift+V替代右键(多数终端模拟器强制走 CLIPBOARD) - 根治办法:确保
terminal.integrated.copyOnSelection为false,并设terminal.integrated.rightClickBehavior为paste(它明确指定读 CLIPBOARD) - 远程连接时,检查远程 shell 是否启用了
bracketed paste(zsh 中bindkey -s '^V' 'paste'类配置),它会让终端对粘贴上下文更敏感,放大 selection 冲突


















