split-diff需命令行安装(apm install split-diff)、settings中启用开关、重启atom确保激活,并满足git项目路径、文件已跟踪、暂存区为空等条件才能触发ctrl+alt+t有效对比。

split-diff 怎么装才真正可用
装了但 Ctrl+Alt+T 没反应?不是快捷键问题,而是插件没激活或环境不满足。用命令行安装比 Settings 里点更稳:apm install split-diff。装完必须去 Settings → Packages → split-diff 确认开关是 Enabled(不是只显示 “Installed”)。如果命令面板(Ctrl+Shift+P)搜不到 split-diff:toggle,关掉 Atom 再重开;还找不到,就进 View → Developer → Toggle Developer Tools 看 Console 是否报 Failed to activate package。
Git 模式下对比“当前修改 vs HEAD”要满足哪些硬条件
split-diff 的 Git 自动比对不是默认就开的,它只在严格路径和状态条件下触发:
- 项目根目录下必须存在
.git文件夹(且 Atom 是从该目录启动,或已通过File → Add Project Folder加载) - 只打开一个文件(比如
src/index.js),然后执行split-diff:toggle—— 左窗格是你正在编辑的内容,右窗格自动加载该文件的HEAD版本 - 该文件必须已被 Git 跟踪(即
git status中列出,不是新创建未git add的文件) - 不能有未提交的暂存变更干扰:如果想比“工作区 vs HEAD”,确保暂存区为空(
git reset --hard或git stash后再试)
不满足任意一条,它就会退化成普通双文件比对,甚至静默失败。
为什么对比结果全是红块或绿块,但内容其实一样
这不是算法出错,而是底层差异计算被无关因素污染:
- 左右窗格换行符不一致(左是
LF,右是CRLF)→ 去右下角状态栏手动统一设成同一种 - 文件编码不同(如一个带
UTF-8 BOM,一个无 BOM)→ 点击右下角编码名,统一选UTF-8 -
Soft Wrap开着 → 必须在Settings → Editor关掉,否则插件会拒绝渲染并报警告 - 空格/缩进变化被当成逻辑变更 → 在命令面板输入
split-diff:set-ignore-whitespace,或去插件设置里勾选Ignore Whitespace
这些设置项不起眼,但任何一个不一致都会让差异高亮失真,尤其在团队协作中跨平台编辑时高频出现。
如何对比“当前修改 vs 暂存区”或“vs 上游分支”
split-diff 支持三种 Git 上下文,但触发方式完全不同:
- vs 暂存区:先
git add index.js,再执行split-diff:toggle;或直接运行split-diff:compare-with-staged(命令面板输入) - vs 上游分支(如
origin/main):得手动改配置——在config.cson里加一行:'split-diff': {'base': 'origin/main'},重启 Atom 后,split-diff:toggle就会拉取该分支对应文件版本 - 注意:它不会自动 fetch 远程分支更新,
origin/main本地过期时,差异结果就是错的;得先git fetch或在 GitHub 插件面板点 Sync
真正容易被忽略的是:split-diff 的 Git 模式只作用于当前活动文件,且不感知未跟踪文件、子模块或符号链接路径——哪怕路径看着一样,Atom 缓存识别为同一 buffer,就会直接跳过比对。











