vscode内置diff够用,但比代码片段、剪贴板或文件夹需插件补位:partial diff支持跨标签页选两段文本即对比;code diff实现compare with clipboard;compare folders支持目录级差异比对。

VSCode 内置 Diff 已经够用,但遇到“只比两段代码”“跨文件选中即比”“比剪贴板”这类需求时,它直接失效——这时候必须靠插件补位。
Partial Diff:选中两段文本就出对比视图
这是目前最轻量、最符合直觉的代码片段对比方案。不依赖文件是否保存、不强制打开完整文件,只要两次选中(支持跨标签页),右键选 Partial Diff: Compare with Selection 就弹出分屏 Diff。
- 第一次选中是 left,第二次是 right;顺序不可逆,但可重做:取消选中 → 重新按顺序选两段
- 选中内容含语法高亮(基于当前语言模式),比如 JSON 或 TypeScript 片段会保留结构着色
- 不写磁盘、不生成临时文件,所有数据走内存快照,关掉窗口即释放
- Windows 用户注意:快捷键是
Ctrl+Shift+P调命令面板,不是 Cmd;macOS 才用Cmd
Code Diff(Microsoft 官方):专治“想比剪贴板”
VSCode 原生不支持 Compare with Clipboard,而这个插件补上了关键一环。装完后右键任意编辑器 → CodeDiff: Compare with Clipboard,就能把当前文件和你刚复制的代码立刻比对。
- 适合场景:粘贴 Stack Overflow 示例前/后验证改动、从邮件或文档里复制配置再核对
- 注意剪贴板内容不能为空,否则报错
Clipboard is empty - 它不修改原文件,只读比对;但如果你在 Diff 右侧手动编辑,点
Accept Changes会把右侧内容写回原文件(和内置 Diff 行为一致) - 和 Partial Diff 不冲突,可共存;前者重“片段”,后者重“来源灵活”
Compare Folders:要对比整个目录结构时别硬扛
VSCode 内置 Diff 不支持文件夹级对比。想看 src/v1 和 src/v2 之间哪些文件增删改了,必须用 Compare Folders 这类扩展。
- 安装后右键任一文件夹 →
Compare Folder With...,选目标文件夹,它会列出所有差异文件,并标出状态:added、modified、deleted - 点击列表中某文件,自动打开该文件的内置 Diff 视图(复用原有逻辑,无需新学习)
- 大项目慎用:它会递归扫描全部子目录,若含
node_modules或dist,默认卡死;务必提前在设置里加排除项:compareFolders.ignoredNames填["node_modules", "dist"] - 不处理二进制文件差异(如图片),只显示
Binary files differ—— 这是合理设计,别指望它替代git diff --no-index
真正容易被忽略的是:所有插件的 Diff 视图都继承 VSCode 的底层行为,比如 diffEditor.ignoreTrimWhitespace 设置仍全局生效。哪怕你在 Partial Diff 窗口里手动关掉了 “Ignore Trimmed Whitespace”,下次打开 Code Diff 时它还是默认开启——得去 settings.json 里显式设成 false 才能统一。这点没人提醒,但影响协作格式审查。











