VS Code自带文件对比功能完全够用,无需插件;最稳触发方式是命令面板输入“File: Compare Active File With”并选择另一文件,需先打开且聚焦一个文件;若显示假差异,多因编码或换行符不一致,应统一为UTF-8和LF/CRLF,并关闭Ignore Trimmed Whitespace以检查空格缩进变化。

VS Code 自带的文件对比功能完全够用,不需要装插件就能快速找出两个文件不同的地方。装了反而可能干扰原生逻辑,比如覆盖 Compare with Selected 行为或引入编码解析冲突。
怎么触发对比:命令面板是最稳的方式
很多人卡在右键菜单找不到选项,其实是因为 VS Code 的右键上下文只在资源管理器中对多选生效;编辑器标签页或代码区右键根本不会出现对比项。
- 先打开一个文件(作为基准),确保它处于焦点状态
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)呼出命令面板 - 输入
File: Compare Active File With,回车 - 从弹出列表中选另一个文件——此时左侧是当前活动文件,右侧是你选的文件
这个路径不依赖鼠标位置、不挑文件路径长度、也不受中文/空格影响,比拖拽或右键更可靠。
为什么 Diff 显示一堆“假差异”
常见现象:两份内容几乎一样的 JSON 或配置文件,Diff 却标满红绿块。大概率是编码或换行符不一致。
- 看右下角状态栏:确认两个文件都是
UTF-8(不是UTF-8 with BOM),且换行符统一为LF或CRLF - 点开状态栏中的编码/换行设置,手动切换一致后再对比
- 如果某文件被 Prettier 等格式化工具处理过,缩进、空行、逗号风格不同也会触发大量差异——建议先关掉自动格式化再比
Ignore Trimmed Whitespace 默认开启,会忽略首尾空格和空行变化;如需检查缩进是否被误删,点 Diff 视图右上角 ⋯ → 取消勾选该选项。
对比时能直接改,但得注意顺序和同步逻辑
Diff 视图是可编辑的,但左右两侧角色固定:左侧是“原文件”,右侧是“目标文件”。这点会影响你点箭头图标的动作含义。
- 行号旁的
→图标:把右侧改动复制到左侧(即“应用到左”) -
←图标:把左侧改动复制到右侧 - 这些按钮默认灰色,只有你手动编辑过某一行后才会激活
- 修改后记得保存对应文件——Diff 视图本身不自动写回磁盘
别指望靠拖拽第二个文件到编辑区来触发对比,那样只会替换当前文件内容;也别试图靠同时打开两个文件再肉眼扫,VS Code 的 diff 是状态驱动,必须显式发起比较动作才启用高亮和导航逻辑。
真正容易被忽略的是:Diff 视图里的所有操作都基于当前打开的文件副本,如果源文件在外部被其他程序修改过,VS Code 不会自动刷新对比内容——需要手动重新触发比较,或者先保存再重开。


















