partial diff 需安装同名扩展,先选第一段文本,再按ctrl(macos为cmd)加选第二段独立不重叠文本,且须在同一编辑器标签页内;若右键无选项,检查语言模式是否支持或调整扩展设置。

怎么触发 Partial Diff 功能
VSCode 原生不带“选中两段文本直接比对”的按钮,Partial Diff 是个社区扩展(名字就叫 Partial Diff),不是内置功能。装完后,右键菜单里会出现 Compare Selected Text,但前提是——你得先手动选中第一段文本,再按住 Ctrl(macOS 是 Cmd)加选第二段文本(必须是两个独立、不重叠的选区),然后右键才亮起该选项。
- 不能只选一段就点;也不能用鼠标拖出连续大块再手动分割
- 如果第二段选区和第一段有重叠,功能直接灰掉
- 选区必须都在同一个编辑器标签页里,跨文件不支持
为什么有时右键没出现 Compare Selected Text
最常见原因是:VSCode 当前语言模式禁用了该扩展的上下文菜单项。比如你在 .md 文件或某些自定义语言(如 vue 的 template 区域)里,扩展可能默认不激活。
- 检查右下角语言标识,临时切到
plaintext或javascript再试 - 扩展设置里搜
partialDiff.enableForLanguages,手动加进你的语言 ID(如vue、yaml) - 确保没和其他 diff 类扩展(如
Compare Folders)产生命令冲突,可尝试禁用其他 diff 扩展后重启
对比结果里中文乱码或格式错位怎么办
Partial Diff 底层用的是 VSCode 自带的 diff view,但它把两段文本临时写成两个内存文件再加载。如果原始文本含 BOM、混合缩进(空格+Tab)、或末尾换行不一致,就会导致行对齐偏移。
- 提前统一缩进:全选 →
Shift+Alt+F(格式化),或手动替换\t为 2/4 个空格 - 删除末尾多余空行:两段都删掉结尾的
\n,避免 diff 把空行当新增内容 - 中文正常,但显示异常?检查当前字体是否支持等宽中文(如
Fira Code、JetBrains Mono),VSCode 设置里搜editor.fontFamily调整
替代方案:不用插件也能快速比
真不想装扩展,或者临时在别人机器上操作,可以用 VSCode 内置的 Compare Active File With...:
- 复制第一段 → 新建临时文件(
Ctrl+N)→ 粘贴 → 保存为a.txt - 复制第二段 → 再建一个 → 粘贴 → 保存为
b.txt - 回到任一文件 → 右键 →
Compare Active File With...→ 选另一个
这方法慢半拍,但胜在稳定、无兼容问题。注意别用 .js 或 .json 当临时后缀——语法高亮会干扰视觉比对,纯用 .txt 最省心。
实际用下来,插件快,但依赖选区精度;手动存文件慢,但容错高。真正卡住的往往不是功能本身,而是你忘了第二段得按住 Ctrl 再选——这个操作没有视觉反馈,手滑一次就得重来。











