vscode 默认无剪贴板历史功能,需安装 clipboard manager 等插件实现;其 ctrl+v 仅读取系统当前剪贴板,不缓存历史,故无法回溯。

VSCode 默认不提供剪贴板历史功能,必须靠插件实现;最常用、最稳定的方案是安装 Clipboard Manager 或 Clipboard History 插件。
为什么 VSCode 自带的 Ctrl+V 不能回溯历史?
VSCode 的编辑器层只对接操作系统当前剪贴板(即 CLIPBOARD 缓冲区),每次 Ctrl+C 都会覆盖前一次内容。它不缓存、不记录、不索引——这和系统级剪贴板管理器(如 Windows 的 Win+V)是两套机制。
常见错误现象包括:
- 按
Ctrl+Shift+V没反应 → 插件未安装或快捷键被其他扩展占用 - 粘贴出乱码或富文本格式 → 插件默认读取了
text/html格式,需在设置中强制用text/plain - 远程开发(WSL/SSH)里历史为空 → 插件运行在 VSCode 客户端,但剪贴板数据未同步到远程终端进程
安装 Clipboard Manager 后怎么用?
插件名是 Clipboard Manager(作者:florianh),不是同名但功能残缺的其他插件。安装后立即生效,无需重启。
核心操作:
- 复制任意内容(
Ctrl+C)→ 自动存入历史列表 - 呼出面板:
Ctrl+Shift+V(Windows/Linux)或Cmd+Shift+V(macOS) - 用方向键或鼠标选择条目,回车粘贴;
Esc取消 - 右键某条历史可「删除」或「复制为纯文本」
注意:该插件默认禁用富文本粘贴。若你从网页复制了带样式的代码,它会自动降级为纯文本——这是优点,不是 bug。
terminal.integrated.rightClickBehavior 和剪贴板历史冲突吗?
不冲突,但行为分层:插件管「编辑器区域」的历史粘贴,而 terminal.integrated.rightClickBehavior 只控制「集成终端」的右键行为。
如果你在终端里想用历史粘贴,得额外配置:
- 设
"terminal.integrated.rightClickBehavior": "paste"→ 右键直接粘贴当前剪贴板内容(非历史) - 想在终端里调历史?只能切回编辑器区域按
Ctrl+Shift+V,再复制过去——终端本身不支持历史下拉菜单 - WSL 环境下,确保已启用
sudo service clipboardd start或使用clip.exe同步,否则历史列表和终端看到的剪贴板不一致
容易被忽略的兼容性细节
剪贴板历史不是“复制即存”,它依赖事件监听。以下情况会导致漏记:
- 通过鼠标右键「复制链接地址」「复制图片」等上下文菜单操作 → 多数插件捕获不到,仅响应
Ctrl+C - 在 VSCode 内嵌的 WebView(如 Markdown 预览、某些扩展面板)中复制 → 不触发编辑器层的 copy 事件
- 开启了 Vim 模式且未配置
"vim.useSystemClipboard": true→y操作不会写入系统剪贴板,历史插件也就无从读取
真正要全链路覆盖,得组合使用:插件 + 系统级工具(Win+V / gpaste)+ 终端专用同步命令(如 WSL 中的 wslview 或 clip.exe)。单靠一个插件,永远有边界。











