Sublime Text 原生不支持行级未保存修改高亮,仅通过文件 tab 上的 * 标识整体修改;需安装 GitGutter 插件,依赖 git 仓库比对实现绿色(新增)、橙色(修改)、红色(删除)的 gutter 行标记。

Sublime Text 默认不提供“未保存修改内容”的行级高亮
Sublime Text 原生没有像 VS Code 那样用左侧 gutter 显示「已修改但未保存」的行标记(比如红色/蓝色竖条)。它只在文件名 tab 上加 * 表示有未保存更改,且仅当整个 buffer 被修改过——不区分哪几行改了、是否已保存过部分修改。
靠 GitGutter 插件实现真正的变更追踪
要看到类似 IDE 的行级修改高亮(新增/修改/删除),必须借助 Git 集成插件。最稳定、轻量、适配 Sublime Text 4 的是 GitGutter:
- 它依赖本地
git命令,通过比对工作区与最近 commit(或 index)来定位变更行 - 高亮显示在编辑器左侧 gutter:绿色 = 新增,橙色 = 修改,红色 = 删除
- 关键点:它只标记「相对于 Git 仓库状态」的变更,不是「相对于上次保存」。也就是说,即使你保存过,只要没 commit,它依然会高亮
- 如果文件不在 git 仓库中,或没配置好
git路径,gutter 就不会显示任何标记
{
"git_binary": "/usr/bin/git",
"show_markers_on_untracked_file": true
}
为什么不用 TrailingSpaces 或 Highlight Modified Lines?
这两个插件常被误认为能解决该问题,但实际不匹配需求:
-
TrailingSpaces只标空格/换行符问题,和修改状态无关 -
Highlight Modified Lines是基于「buffer 加载后是否被编辑过」来标记,一旦你 Ctrl+S 保存一次,所有高亮就立刻消失——它根本无法体现「保存后又改了哪些行」 - 它也不依赖 git,因此无法区分「新增」和「修改」,所有变更都统一着色,且容易在多光标/撤销操作后错位
确保 GitGutter 正常工作的三个硬性条件
缺一不可,否则 gutter 保持空白:
- 当前文件必须位于一个有效的 git 仓库内(即存在
.git目录) - Sublime Text 必须能调用系统
git命令——可在终端运行which git,把路径填进GitGutter.sublime-settings - 文件不能是「untracked」且设置为不显示(检查
show_markers_on_untracked_file是否为true;若为false,新文件不会高亮)
如果你在团队协作中频繁切换分支,还要注意:GitGutter 默认对比的是 HEAD,不是暂存区。如需对比 staging,得手动启用 compare_against: "staged" 设置。










