sublime文本比对依赖插件,核心快捷键为ctrl+alt+c/cmd+alt+c触发并排对比,需两已保存不同路径文件;ctrl+alt+2/cmd+alt+2切双栏,ctrl+2/cmd+2切右栏;text: diff仅比选中内容与剪贴板,非文件对比。

Sublime 的快捷键本身不提供文本比对能力,所有“对比”操作都依赖插件,但快捷键是触发、切换和优化比对流程最高效的方式——关键在于用对组合,而不是记一堆命令。
Compare Side-By-Side 的核心快捷键必须记牢
这是当前最稳的并排对比方案,快捷键设计直击高频场景:
-
Ctrl+Alt+C(Windows/Linux)或Cmd+Alt+C(macOS):直接触发对比,前提是两个文件已作为独立标签页打开;按一次就拆栏+并排+高亮,不弹菜单、不选文件、不新开标签 -
Ctrl+Alt+2/Cmd+Alt+2:强制切为左右双栏布局——这是很多插件(如 FileDiffs)能正常工作的前提,不是可选项 -
Ctrl+2/Cmd+2:把焦点切到右栏,方便立刻Ctrl+P打开第二个文件,避免它挤进左栏覆盖原文件
注意:Ctrl+Alt+C 不会响应未保存的 Untitled-1 标签页,也不会处理同一文件的分屏副本(比如拖拽一个 config.json 标签到右边),它只认「两个不同路径的已保存文件」。
别信 Text: Diff 快捷键,它根本不是文件对比
很多人在命令面板搜 Diff 看到 Text: Diff 就点,结果发现只是把当前选中文本和剪贴板内容做行级比对——它不支持两个打开的文件,也不生成结构化差异视图。
- 这个命令对应的是
Ctrl+Shift+P→ 输入Text: Diff,本质是调用 Sublime 内置的简单字符串 diff 逻辑 - 它无法识别文件路径、不读取编码设置、不处理换行符差异,对比结果全是单列文本块,没高亮、没跳转、不能同步滚动
- 真正需要比两个文件时,
Text: Diff唯一有用场景是:复制一段配置 → 切到另一文件 → 全选目标段落 →Text: Diff快速扫局部差异
编码与格式校准的快捷键链,比对比本身还重要
90% 的“全红/错位/乱码”问题,根源不在插件,而在文件加载进 Sublime 时的原始状态。这些快捷键链必须在对比前执行:
- 统一编码:
Ctrl+Shift+P→ 输入Reopen with Encoding→ 选UTF-8(不是UTF-8 with BOM)→ 对两个文件分别执行 - 统一换行符:
Ctrl+Shift+P→ 输入Convert Line Endings→ 选Unix (LF) - 对齐缩进:
Ctrl+Shift+P→ 输入Convert Indentation to Spaces(尤其对.yml、.md文件)
这些操作没有“一键全选两个文件批量处理”的快捷键,必须逐个文件手动执行——漏掉任何一个,Ctrl+Alt+C 出来的就是误导性结果。
对比中快速定位与切换的冷门但实用操作
并排对比不是摆着看,而是要快速验证、跳转、回溯:
- 同步滚动开启后,滚轮只控制当前焦点所在栏;想让两栏一起动,得先按
Ctrl+1/Cmd+1把焦点切到左栏,再滚,否则右栏不动 - 想临时关闭高亮专注读某一行?按
Esc退出当前插件交互态(部分插件支持),或直接Ctrl+K, Ctrl+0关闭所有分栏恢复单视图 - 对比完想保留结果?
Ctrl+Shift+T可重新打开刚关闭的 diff 标签页,但注意 Compare Side-By-Side 的对比视图是动态渲染的,关了就得重按Ctrl+Alt+C
真正的复杂点从来不在“怎么比”,而在于你是否意识到:Sublime 的文本比对永远是“字节流级”的快照比对,它不会帮你猜意图、不会自动 trim 空格、也不会跨编码救场。快捷键只是杠杆,支点是你对这两个文件真实状态的确认。











