Sublime Text 4 无法实现侧边栏 Git 状态高亮,因其无公开 API 支持图标染色或 badge;GitGutter(gutter 标记)与 SideBarEnhancements(右键 Git 菜单)是唯一稳定可行组合。

Sublime Text 4 无法在侧边栏(Side Bar)实现 Git 状态高亮,这不是配置问题,而是根本不可行——它没有公开 API 支持文件图标染色或 badge 标记。
为什么“侧边栏 Git 高亮”在 ST4 中注定失败
你看到的所谓“M/A/D 图标出现在侧边栏”,基本都是混淆了 gutter(行号右侧区域)和 side bar(左侧文件树)。Sublime 的侧边栏是纯文件系统视图,不读取 .git,也不暴露 DOM 节点、CSS 类或渲染钩子。所有尝试修改 Packages/Theme - Default/side_bar.sublime-menu 或 patch side_bar.py 的方案,都会在 ST4 更新后立即崩溃。
常见错误现象包括:
ImportError: No module named 'sublime_git'AttributeError: 'module' object has no attribute 'get_working_dir'- 插件显示已安装,但右键无 Git 子菜单、图标始终灰色、状态从不更新
GitGutter + SideBarEnhancements 是唯一可行组合
二者分工明确,不重叠、不冲突,且都持续维护、原生支持 ST4(Python 3.8+):
-
GitGutter:在gutter(行号右侧)显示+/-/~标记,对应 added/modified/deleted;自动探测项目根目录下的.git,无需配置 -
SideBarEnhancements:在侧边栏右键菜单注入完整 Git 子菜单(Stage、Revert、Discard、Open Recent Changes),所有操作基于当前选中项自动推导仓库路径
安装方式统一:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac)调出命令面板 - 输入
Package Control: Install Package - 依次搜索并安装
GitGutter和SideBarEnhancements
装完即用,无需重启;只要文件夹含 .git,右键就生效。支持子模块、符号链接、中文路径。
别再碰 SidebarGit 或 Aygit 的“侧边栏染色”幻想
SidebarGit 在 ST4 中已彻底失效:它硬编码 Python 2.6/3.3 兼容逻辑,依赖已被移除的 sublime_plugin.EventListener 旧接口和 os.popen('git') 调用方式。即使手动替换为 subprocess.check_output 和 window.extract_variables().get('folder'),也无法解决其无法访问侧边栏渲染层的根本限制。
Aygit 只提供命令面板里的状态列表(Aygit: Show Status),不能映射到侧边栏节点;有人试图用 view.window().run_command("reveal_in_side_bar") 高亮定位,但这只是临时滚动聚焦,不改变样式、不持久、不直观。
如果你真需要视觉提示,只能退守“状态栏 + gutter”双轨方案
放弃侧边栏染色,转向稳定、可落地的替代路径:
- 启用
GitSavvy的git_savvy.status_bar_branch设置,在状态栏右下角固定显示当前分支名 - 配合
GitGutter的 gutter 标记,形成“分支在哪 + 文件改了哪”的最小闭环 - 按
Ctrl+Shift+P输入GitSavvy: status,打开带颜色编码的状态面板(M=modified,A=added),回车直接跳转文件
真正难的不是写插件,而是接受 Sublime 的设计边界:它把侧边栏当作轻量文件导航器,不是 Git IDE。想靠一个包就让侧边栏变 VS Code,只会反复踩进兼容性陷阱。


















