VSCode 标题栏显示 Git 分支需配置 "window.title": "${dirty}${rootName}${separator}${branch}${separator}${fileName}",其中 ${branch} 仅在启用 Git 扩展且项目为有效仓库时生效,否则为空;修改后须完全重启 VSCode。

VSCode 标题栏怎么显示当前 Git 分支名
VSCode 默认标题栏只显示文件名,不显示 Git 分支。要让它显示分支名,得靠 window.title 配置 + ${branch} 变量,但这个变量**只在启用 Git 扩展且项目已初始化为仓库时才生效**。
实操建议:
- 打开 VSCode 设置(
Ctrl+,或Cmd+,),搜索window.title,点击「在 settings.json 中编辑」 - 添加或修改配置项:
"window.title": "${dirty}${rootName}${separator}${branch}${separator}${fileName}" -
${branch}会自动展开为当前 HEAD 的分支名(如main),如果处于分离头指针状态,则显示 commit hash 前 7 位 - 注意:如果项目没开 Git(没
.git目录),${branch}为空字符串,标题不会报错,但也不会显示任何分支信息
为什么改了 window.title 却没看到项目名或路径
因为默认的 ${rootName} 和 ${folderName} 行为容易误解——${rootName} 是工作区根文件夹名(不是完整路径),而 ${folderName} 在单文件打开时为空,多根工作区下行为也不稳定。
实操建议:
- 想显示项目绝对路径?VSCode **不原生支持**
${workspaceFolder}以外的路径变量,且${workspaceFolder}是绝对路径,但标题栏过长会被截断,不推荐直接用 - 更稳妥的做法是用
${rootName}(简洁)或${folderName}(仅当文件夹已作为根打开时有效) - 如果用的是多根工作区,
${rootName}显示的是第一个根的名字,不是当前活动编辑器所在根 —— 这是常见误判点 - 分隔符
${separator}默认是-,可改成|或空格,但别用斜杠/,Windows 标题栏可能渲染异常
${dirty} 和 ${activeEditorShort} 这些变量到底啥意思
这些是 VSCode 内置的窗口标题模板变量,不是所有都常用,但几个关键变量直接影响信息可读性。
实操建议:
-
${dirty}:有未保存修改时显示 ●,否则为空;它不占宽度,但能快速提示是否已保存 -
${activeEditorShort}:显示当前标签页的文件名(不含路径),和${fileName}效果一致;${activeEditorLong}会带路径,但通常太长,标题栏会折叠 -
${separator}不是字符串字面量,是专用变量,不能替换成" | "字符串,否则整个 title 模板失效 - 变量大小写敏感:
${Branch}或${BRANCH}都无效,必须小写${branch}
Mac / Windows / Linux 下标题显示不一致怎么办
根本原因不是系统差异,而是 VSCode 的 window.title 渲染逻辑在不同平台对「过长标题」的截断策略不同,尤其是含中文或 emoji 时。
实操建议:
- 避免在
window.title里堆砌太多变量,优先保留${dirty}${rootName}${separator}${branch},文件名留给标签页自己显示 - Linux(尤其 GNOME)可能完全忽略
window.title,改用桌面环境自己的窗口管理逻辑;这时只能靠插件如Custom CSS and JS Loader(需启用开发者工具,有安全风险) - Windows 上若使用旧版远程开发(Remote-SSH),
${branch}可能始终为空——检查远程端是否安装了 Git 并加入 PATH - 改完配置后,**必须完全重启 VSCode(不是重载窗口)**,否则变量不刷新
最常被忽略的一点:Git 仓库必须是「已识别」状态。如果 VSCode 左下角没显示分支名,${branch} 就一定为空——先解决 Git 扩展识别问题,再调标题栏。


















