安装partial diff插件后多数情况下无需重启vscode,但若右键无“compare with selection”或命令面板搜不到该命令,则需点击扩展页的“reload window”重载窗口以注册菜单和命令。

Partial Diff 是目前最轻量、最直接满足「比两段代码」需求的插件,不用开新文件、不依赖保存状态,选中即比——其他插件(如 Code Diff 或 Compare Folders)只在特定场景下才必要。
安装 Partial Diff 插件必须点“Reload”吗?
多数情况下不用重启 VSCode,但“Reload”按钮出现在插件页时建议点一下。原因在于:Partial Diff 会向右键菜单和命令面板注入新条目,部分 VSCode 版本(尤其是 1.118 之后)需显式重载才能注册成功。若装完后右键没出现 Partial Diff: Compare with Selection,或命令面板搜不到该命令,就说明没生效。
- 打开扩展页(
Ctrl+Shift+X或Cmd+Shift+X),找到已安装的 Partial Diff 插件 - 点击右上角
⋯→ 选择Reload Window - 重载后,随便打开一个文件,按住
Cmd(macOS)或Ctrl(Windows/Linux)选两段文本,再右键试试
为什么右键选了两次,却弹出“no differences”?
这不是插件故障,而是选区顺序或内容触发了默认逻辑:Partial Diff 把第一次选中的内容当 left,第二次当 right;如果两次选中的是完全相同的文本(比如复制粘贴后未修改),结果自然为无差异。更常见的是误操作导致“第二次选中覆盖了第一次”——比如松开 Cmd 后又点了其他位置,导致第一次选区被清除。
- 确保两次选中是连续动作:第一次选完别松开
Cmd/Ctrl,滚动到另一处再选第二次 - 两个选区不能重叠,也不能位于同一行内相邻区域(VSCode 可能合并为一个选区)
- 如果想对比剪贴板内容,别用右键菜单,改用命令面板执行
Partial Diff: Compare with Clipboard - 空格、换行符默认参与比对;若想忽略首尾空白,需手动在 diff 视图右上角点击
⋯→ 取消勾选Ignore Trimmed Whitespace
比对跨文件代码时,为什么右侧内容显示乱码或整行错位?
本质是编码或换行符不一致。VSCode 的 diff 是字节级比对,哪怕只是左侧用 LF、右侧用 CRLF,也会导致整行哈希不匹配,从而显示“no differences”或大量红色删除块。
- 比对前先看右下角状态栏:两边都应显示
UTF-8和LF(不是UTF-8 with BOM或CRLF) - 若不一致,点击编码标识 → 选
Reopen with Encoding统一为UTF-8,再点右键 →Save with Encoding - JSON/YAML 等结构化内容,建议先用
Format Document(Shift+Alt+F)统一缩进和空行,再比对 - 注意:Partial Diff 不会自动格式化,它比的是你当前看到的原始文本
真正容易被忽略的是:所有插件生成的 diff 视图,底层都复用 VSCode 原生 diff engine,所以 diffEditor.ignoreTrimWhitespace、diffEditor.renderSideBySide 这些设置依然生效——它们不会因为用了插件就失效。调错一个开关,可能让关键空格变更完全看不见。











