Sublime Text 标题栏显示内容由固定规则生成:当前文件名(未保存加 *)+ 项目名(如有)+“– Sublime Text”;项目名取自。sublime-project 文件的顶层 name 字段,单文件时仅显示文件名,无法通过 set_status() 或用户设置修改。

Sublime Text 标题栏显示的是什么
标题栏内容不是靠“设置项”直接填的,而是由 Sublime 自己按固定规则拼出来的:当前文件名 +(未保存时带 *)+ 项目名(如果有)+ – Sublime Text。你改不了这个模板,但能通过插件或配置间接影响它显示什么。
用 view.set_status() 无法修改标题栏
很多人试过在 Python 插件里调 view.set_status("title", "xxx"),发现标题栏完全没反应——这是对的。set_status() 只控制窗口底部状态栏,和标题栏无关。标题栏走的是另一套逻辑,Status Bar 和 Title Bar 在 Sublime 里是两个完全独立的 UI 区域。
真正起作用的是 sublime-project 文件里的 name
如果你打开的是一个项目(即有 .sublime-project 文件),Sublime 会优先把 name 字段值放到标题栏里。比如:
{"name": " 后端 API 文档 ", "folders": [ { "path": "src/api"} ] }
这样标题栏就会显示 后端 API 文档 – Sublime Text,而不是默认的路径名。注意:name 必须是顶层字段,不能嵌套;值为空字符串或缺失时,会 fallback 到文件夹路径名。
单文件没项目时,唯一可控方式是改文件名或用符号链接
纯文本文件没关联项目?那标题栏只认 view.file_name() 返回的路径最后一段(即文件名)。你没法让它显示“我的笔记 -2024”,除非:
- 把文件真名改成
我的笔记 -2024.md - 在项目文件夹里建个符号链接:
ln -s real.md " 我的笔记 -2024.md",然后打开链接 - 用插件如
FileDiffs或ProjectManager临时挂载为伪项目(但本质还是绕回name字段)
别指望用户设置或插件 API 能绕过这个限制——Sublime 的标题栏渲染逻辑是硬编码在 C++ 层的,Python API 没暴露入口。
标题栏这事,表面是显示问题,实际是 Sublime 对“当前上下文”的定义方式决定的。想让它显示什么,得先让它认为你处在什么上下文里。