必须装split-diff插件,且仅在两个已保存、路径不同、换行符一致的文件分置左右窗格时生效;ctrl+alt+t无响应90%因未满足这四条件:需通过apm install split-diff安装并确认settings→packages中状态为enabled,命令面板能搜到split-diff:toggle,且项目含.git目录。

必须装 split-diff,且只在两个已保存、路径不同、换行符一致的文件分置左右窗格时才生效;Ctrl+Alt+T 没反应,90% 是因为没满足这四个条件。
怎么确认 split-diff 真正装好了
apm install split-diff 命令行安装比 Settings → Install 更稳,尤其 Atom 版本较新时。装完必须去 Settings → Packages → split-diff 页面,确认右侧开关是 Enabled(不是“Installed”就行)。如果命令面板(Ctrl+Shift+P)搜不到 split-diff:toggle,关掉 Atom 重开一次;若仍不行,打开 Developer Tools(View → Developer → Toggle Developer Tools),看 Console 是否有 Failed to activate package 报错。
为什么 Ctrl+Alt+T 按了没反应
这不是快捷键冲突,而是插件拒绝执行——它对前置状态极其敏感:
- 当前只打开一个文件?→ 必须先用
Pane: Split Right或拖文件进新 pane,确保左右各有一个文件标签 - 两个文件实际是同一磁盘路径?→ 比如
./src/index.js和/full/path/src/index.js,Atom 缓存识别为同一 buffer,直接跳过对比 - 至少一个文件还是
untitled?→ 状态栏显示未保存,必须先Ctrl+S存成真实路径 - 左右窗格换行符不一致?→ 左是
LF、右是CRLF,会导致大片误标;统一方式:右下角状态栏点击换行符标识,手动设成一样
Git 项目里怎么对比当前文件和 HEAD
这是 split-diff 最实用但最容易误解的场景——它不自动拉取历史,只按固定逻辑触发:
- 项目根目录下必须有
.git文件夹,且 Atom 是从该目录启动,或已通过File → Add Project Folder加载 - 只打开一个文件(比如
index.js),然后执行split-diff:toggle→ 左窗格是你正在编辑的内容,右窗格自动加载该文件的HEAD版本 - 想对比暂存区?先
git add index.js,再触发命令;想对比origin/main?目前不支持直接指定远程分支,只能先git checkout origin/main -- index.js生成临时文件再比
对比结果看起来怪,绿色/红色块不对应怎么办
这不是渲染错误,而是 Myers 差异算法在结构差异大时做的合理重组(比如把“删 A 行 + 插 B 行”合并为“替换 A→B”):
- 先试
split-diff:set-ignore-whitespace(命令面板输入),排除空格、缩进干扰 - 关掉
Auto Diff(Settings → Packages → split-diff → 取消勾选),改用手动split-diff:toggle触发一次干净计算 - 避免对比超长文件(>2000 行),split-diff 渲染性能会明显下降,定位变慢
- 真正容易被忽略的是:split-diff 的 Git 模式只作用于当前活动文件,不会自动拉取整个 diff,也不会感知 unstaged 改动以外的其他状态











