Partial Diff插件需认准作者ryu1kn,安装后通过命令面板验证“Partial Diff: Compare Selected Texts”是否可用;选区必须独立、非空、非重叠,首段为左栏、次段为右栏,支持跨文件比对但不自动匹配函数名。

Partial Diff插件怎么装才不踩坑
直接搜 Partial Diff,认准作者 ryu1kn 的那个——别装错成名字相近的“Diff”或“Compare”类插件,那些不支持选区比对,也进不了右键菜单。
安装后不用重启,但得确认它已启用:打开命令面板(Cmd+Shift+P 或 Ctrl+Shift+P),输入 Partial Diff: Compare Selected Texts,能搜到就说明装好了。如果提示“command not found”,大概率是插件没启用,去扩展页点一下“启用”按钮。
- Windows/Linux 用户注意快捷键是
Ctrl+ 鼠标选区,不是Shift或Alt - macOS 上用
Cmd,别手滑按成Option,否则第二段选区会失效 - 插件不依赖文件是否保存,未保存的临时 tab 也能参与比对
同一文件里比两段 JS 代码,顺序和选区有讲究
VSCode 不会自动判断哪段是“旧版”、哪段是“新版”,它只按你选中的先后顺序来排左右:第一个选区进左栏,第二个进右栏。所以想让重构前的函数在左边、重构后的在右边,就得先选旧逻辑,再 Cmd + 点选新逻辑。
常见错误现象:Partial Diff: Compare with Selection 菜单项灰掉,或者比对窗口只显示一行内容——基本是两段选区重叠了,或者其中一段为空白行/纯空格。插件要求两个选区必须是独立、非空、非重叠的文本块。
- 选中时尽量用鼠标拖选,避免用
Shift+方向键扩展选区导致末尾多出换行符 - 函数体开头结尾的花括号建议一并选中,否则 diff 可能漏掉结构变化
- 如果比对后发现差异高亮不明显,检查设置里是否开了
diff.ignoredTrimWhitespace(默认开启),它会忽略行首尾空格,适合看逻辑,但调试格式问题时得关掉
跨文件比对 JS 代码时,路径和上下文要手动对齐
比如你在 utils/date.js 里改了一个 formatDate 函数,想跟 legacy/helpers.js 里的老版本比,就得先把两个文件都打开,再分别选中对应函数。插件不会自动匹配函数名,也不会跨文件搜索同名函数——它只认你当前选中的文本。
容易被忽略的一点:如果老版本函数用了 var,新版本用了 const,diff 视图里整行都会标红,但你得自己判断这是语义变化还是单纯语法升级。它不解释“为什么不同”,只告诉你“哪里不同”。
- 跨文件操作前,先确认两个文件编码一致(UTF-8),否则可能出现乱码或比对失败
- 不要指望它识别注释差异——比如
// old logic和// new impl在 diff 里就是两行普通文本,不会合并或折叠 - 比对完关掉标签页时,别顺手关了 diff 视图本身,那是只读的临时视图,关了就没了,得重新选再比
比对结果里哪些差异真该关注,哪些可忽略
绿色背景是新增,红色是删除,黄色是修改(比如 === → ==)。但 JS 里有些变化看着吓人,实际影响不大;有些看着平淡,却埋着 bug。
真正该盯住的:函数签名变更(参数增删)、return 语句位置移动、async/await 和 Promise.then() 混用、Object.keys() 替换成 for...in 这类可能改变遍历顺序的操作。而 let ↔ const、单引号 ↔ 双引号、空行增减,多数时候只是风格问题。
-
console.log的增删常被当成噪音忽略,但它可能意味着调试逻辑残留或关键日志丢失 - 正则字面量里
/g标志的增减会影响全局匹配行为,diff 只标颜色,不提醒你这个 - 箭头函数省略括号
a => a + 1和带括号(a) => a + 1在 diff 里是纯文本差异,但传参逻辑其实一样,得靠人判断


















