show_full_path仅控制标题栏是否显示完整绝对路径,不支持自定义模板;set_status()和window.set_title()无法修改标题栏,因其渲染由c++私有逻辑处理;唯一可控方式是通过.sublime-project的name字段、保存文件及升级至st4 build 4141+。

show_full_path 设置只控制标题栏路径显示,不支持自定义模板
Sublime Text 的 show_full_path 是一个布尔开关,仅决定是否在窗口标题栏显示完整文件路径(如 /home/user/project/src/main.py),它不接受格式字符串、不支持相对路径、不支持截断或拼接逻辑。所谓“自定义模板”在原生层面根本不存在——标题栏内容由 Sublime 内部硬编码拼接:view.file_name() 返回的绝对路径 + “ – Sublime Text”(Windows/Linux)或仅路径(macOS)。你无法用 "title_format": "{name} [{dir}]" 这类配置干预它。
为什么 set_status() 或 window.set_title() 对标题栏完全无效
很多人试过在插件里调用 view.set_status("title", "...") 或 window.set_title("..."),结果标题栏纹丝不动。这不是代码写错,而是 Sublime 的 API 设计如此:set_status() 只影响底部状态栏;window.set_title() 在 Sublime Text 4 中根本不存在(文档和源码均无此方法)。标题栏渲染走的是 C++ 层私有逻辑,Python 插件层没有暴露任何修改入口。所有声称“可改标题栏”的插件,要么已失效(ST4 兼容性断裂),要么实际修改的是侧边栏项目名或标签页文本,而非窗口标题。
真正能间接影响标题栏显示的三个可控点
虽然不能自定义模板,但可通过以下方式让标题栏“看起来更符合预期”:
- 用
.sublime-project文件定义"name"字段:当打开项目时,标题栏会显示该 name 值(如"后端 API 文档")而非路径,前提是项目已保存且 name 是顶层字段 - 确保文件已保存:未保存的
untitled标签永远显示Untitled — Sublime Text,show_full_path对其无意义 - 升级到 ST4 Build 4141+ 并正确配置:低于此版本(包括全部 ST3)的
show_full_path字段会被静默忽略,不是 JSON 格式问题,是版本不识别
Windows 下长路径被截断不是 bug,是系统级限制
即使 show_full_path 生效,Windows 标题栏对字符数有硬限制(通常约 120–150 字符),超长路径如 C:\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z\file.py 会被系统自动省略中间部分,显示为 C:\a\b\c\...\z\file.py。这不是 Sublime 的问题,也无法通过插件绕过。若需完整路径,应依赖 Copy File Path 命令(Ctrl+Shift+P → 输入该命令),它返回原始绝对路径,不受 UI 截断影响。











