atom文件对比需按场景选插件:diff-pane仅支持已打开且路径不同的两个tab;split-diff支持git上下文比对(如vs head),需启用实时监听;git-diff和git-gutter仅为行级标记,不提供并排编辑。

Atom 本身不支持开箱即用的文件比对,必须依赖插件;但 diff-pane 和 split-diff 行为逻辑完全不同,选错就白装。
diff-pane 只能比已打开的两个 tab,且路径必须不同
它不是“选两个文件点比较”,而是从当前已打开的 tab 列表里挑一个和当前活动 tab 对比。常见失败原因:
- 两个 tab 实际指向同一磁盘路径(比如一个用 ./file.js,另一个用 /full/path/file.js)→ diff-pane 认为是同一文件,报 Cannot compare with itself
- 其中一个 tab 是未保存的 untitled → 必须先按 Cmd+S 或 Ctrl+S 存成真实路径文件
- 项目根目录没加进 Atom(File → Add Project Folder)→ diff-pane 可能无法识别路径上下文
- 插件被其他包冲突(如 git-diff 或 compare-files)→ 进入 Settings → Packages → diff-pane 确认状态为 Enabled,并临时禁用可疑插件
split-diff 支持 Git 上下文自动比对,但默认不启用实时监听
它能直接把当前编辑版本 vs HEAD、vs 暂存区、vs 上游分支,前提是项目含 .git 目录且插件已激活。
- 默认快捷键是 ctrl-alt-t ctrl-alt-d(Linux),macOS/Windows 需查 keymap.cson 配置
- 要开启“改完立刻重算差异”,得手动启用 split-diff:enable 命令(命令面板输入即可),否则只在触发时计算一次
- 它会自动创建分割窗格,但若你已有多个 pane,可能加载到错误位置 → 建议先关闭多余 pane 再操作
- “忽略空白”需单独勾选,否则空格/缩进变更会淹没逻辑差异
git-diff 和 git-gutter 是行级标记,不是文件比对工具
它们只显示“当前文件相对于 Git 最近提交的增删改”,不提供并排视图,也不允许编辑右侧基准内容。
- git-diff:右键菜单选 git diff: show diff 或按 Ctrl+Shift+D,弹出内联 diff 面板(只读)
- git-gutter:在滚动条旁画红绿条,标出有变更的行,但大文件易卡顿 → 可在设置里关掉 showIconsInGutter 或临时禁用
- 两者都依赖 Atom 内置 Git 支持,若项目没初始化或 .git 路径异常,图标和命令都会消失
- 不要指望它们替代 diff-pane 或 split-diff,定位用途不同:一个是“我改了哪几行”,一个是“这两版代码差在哪”
真正麻烦的是路径识别逻辑——diff-pane 看绝对路径,split-diff 看 Git 工作树,git-gutter 看暂存索引。同一组文件,在三个插件里可能一个能比、两个报错。动手前先确认你要比的是“任意两文件”还是“当前文件 vs 历史版本”,再决定装哪个、怎么配。










