sublime内置text: diff命令需将两段文本粘贴至同一标签页并全选后调用,可触发行级差异高亮,新增行标“+”、删除行标“−”、修改行背景色标记,但要求两段连续、无非空行隔开、不校验编码与换行符。

Sublime内置Text: Diff命令怎么用?
直接在同一个文件里选中两段文本,就能触发行级差异高亮——不用装插件、不依赖外部工具,适合临时比对函数体、配置块或日志片段。
操作步骤很简单:
- 把两段要对比的文本都粘贴到同一个标签页里,上下排列(中间留空行更稳)
- 鼠标拖选第一段文本,按
Ctrl+C复制 - 光标移到第二段开头,按
Ctrl+V粘贴(确保两段是独立块) - 全选这两段(含中间空行),按
Ctrl+Shift+P→ 输入Text: Diff→ 回车
结果会新开一个只读标签页,用+标新增行、-标删除行、背景色标修改行。注意:它不校验编码或换行符,如果两段文本缩进混用(Tab+Space)或换行符不一致(\r\n vs \n),整行都会被标为不同。
为什么Diff命令有时没反应?
常见原因不是插件没装,而是选区不符合要求:
- 选区必须是**连续的两块文本**,不能跨折叠区域、不能含不可见控制字符(比如从终端复制带ANSI色码的日志)
- 两段之间**不能有非空行隔开**——哪怕只多一个空格,
Text: Diff就会当成三段,直接失败 - 如果其中一段是未保存的
Untitled-1且内容为空,命令会静默退出,不报错也不出结果
验证方法:先手动删掉两段之间的所有空行,再全选 → 右键 → Selection → Expand Selection to Line,确保选区边界对齐行首行尾。
Diffy插件比内置Text: Diff强在哪?
Diffy不是替代,而是补足——它能把对比逻辑从“同一文件内两段”扩展到“两个独立标签页”,且支持磁盘文件直读,不卡在编辑器缓存里。
典型场景:
- 对比刚改了一半的
config.json和上一版已保存的副本:右键当前标签页 →Diffy: Compare with Active View - 核对别人发来的
patch.txt和本地main.py:右键侧边栏 →Diffy: Compare Files→ 粘贴两个绝对路径(Windows 路径含空格必须加英文双引号) - 发现乱码?说明
Diffy按默认编码读取了文件,先用File → Reopen with Encoding手动指定正确编码再重试
它不滚动同步、不保存结果,但胜在快、稳、不挑环境——连Sublime Text 4 build 4143+都不用额外配Python,直接调系统diff或fc.exe。
大段文本对比前必须做的三件事
不管是用Text: Diff还是Diffy,只要文本超过200行或单行超长(比如含base64或JSON dump),就容易卡顿甚至UI冻结:
- 先关语法高亮:
Ctrl+Shift+P→ 输入Set Syntax: Plain Text,避免解析器拖慢比对 - 关自动换行:
View → Word Wrap设为False,否则逻辑行对齐错位,差异标错位置 - 统一换行符:
Ctrl+Shift+P→ 输入Set Line Endings→ 统一选Unix (LF),尤其当一段来自Windows、一段来自macOS时
这些动作看着琐碎,但跳过任何一个,都可能让本该标红的某一行变成整块误报——而你得花两分钟才发现是换行符惹的祸。











