Sublime Text 无原生代码对比功能,应使用官方工具 Sublime Merge 替代;其深度集成 Git,支持右键快速比对文件或与 HEAD/Index 对比,需正确配置 smerge 命令行路径。

Sublime Text 里没有原生“代码对比模式”
Sublime Text 本身不提供类似 VS Code 的内置文件对比(diff)视图,Ctrl+Shift+P 搜 Diff 或 Compare 都不会出现可用命令。强行用插件模拟(比如 Sublimerge)容易卡顿、不支持 Git 状态联动,且已多年未更新,兼容性差。
用 Sublime Merge 替代“对比模式”才是正解
Sublime Merge 是官方出品的 Git GUI 工具,和 Sublime Text 深度集成,专为代码比对设计。它不是插件,而是独立应用,但能从 Sublime Text 直接唤起:
- 确保已安装
Sublime Merge(官网下载 macOS/Windows/Linux 原生版本,不要用包管理器装旧版) - 在 Sublime Text 中右键文件 →
Open in Sublime Merge(首次使用会提示配置路径) - 或选中两个文件 → 右键 →
Compare Files with Sublime Merge - Git 仓库内,右键暂存区/工作区文件 →
Compare with HEAD或Compare with Index即刻看到行级差异
注意:subl 命令行工具需指向 Sublime Text,而 smerge 必须正确注册——安装时勾选 “Add to PATH” 或手动把 smerge 所在目录加入系统 PATH,否则右键菜单不生效。
Sublime Text 里临时比对两段代码的土办法
不启动外部工具时,可快速做轻量对比:
- 复制一段代码 → 新建标签页 →
Paste→ 全选 →Ctrl+Shift+P→ 输入Convert Indentation to Spaces(统一缩进,避免空格/tab 干扰) - 用
Ctrl+K, Ctrl+U转为小写(如需忽略大小写) - 安装插件
TrailingSpaces清除行尾空格,再用Ctrl+Shift+P→Sort Lines(仅当逻辑顺序无关时) - 最后用
Ctrl+Shift+P→Find All in Current Selection手动扫差异(适合小于 50 行)
这方法没高亮、无折叠、不能跳转变更块,纯应急。超过三处差异就该切到 Sublime Merge。
为什么别折腾 Sublimerge 或其他 Diff 插件
老教程常提 Sublimerge,但它依赖 Python 2.6、不支持 Sublime Text 4、无法读取 .gitignore、对比大文件(>1MB)直接假死。社区替代品如 Ediff 仅支持 Linux + Emacs 模式,Windows/macOS 下基本不可用。Sublime Merge 的 smerge diff 命令行接口稳定,支持 --cached、--no-commit-id 等 Git 参数,和日常开发流无缝衔接——这才是官方留的后门,不是备选方案。
真正卡点在于 smerge CLI 注册失败时右键菜单消失,这时候别重装,先终端运行 smerge --version 看是否识别,再检查 Sublime Text 的 Preferences → Package Settings → Sublime Merge → Settings 里 smerge_path 是否指向正确的二进制文件。










