sublime text 4.41+ 可通过 "show_full_path": true 在状态栏显示完整路径,但仅对已保存文件生效;st3 或旧版 st4(如 build 4126 之前)不支持该设置,强行添加无效。

Sublime Text 4.41+ 可通过 "show_full_path": true 在状态栏显示完整路径,但仅对已保存文件生效;ST3 或旧版 ST4(如 Build 4126 之前)不支持该设置,强行添加无效。
为什么 "show_full_path": true 有时不显示在状态栏?
这个设置的行为依赖 Sublime 的底层渲染链,不是所有版本都一致生效:
- Build 4126+ 的 ST4 大概率在状态栏右下角显示绝对路径(如
/Users/me/project/src/main.py),但部分主题或插件(比如启用了show_tab_close_buttons)会覆盖该行为 - ST3 和早于 Build 4126 的 ST4 版本压根不识别该字段——它会被静默忽略,不会报错也不会生效
- 即使设置成功,未保存的文件(
Untitled)仍返回空,状态栏保持空白,这是设计使然,不是 bug - 该设置只影响状态栏和标题栏,对标签页名称无任何作用;别指望靠它让标签显示路径
全版本兼容的路径获取方式:用 copy_file_path 命令
这是最稳、最通用的方案,ST3/ST4 全支持,且逻辑清晰:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS)打开命令面板 - 输入
copy_file_path并回车,路径立即进剪贴板 - 它对未激活标签页也有效(即侧边栏里选中但没点开的文件),而
Copy Path菜单项只作用于当前视图 - 若需相对路径,用
copy_relative_path命令,它基于当前项目根目录计算
想在标签页直接看到路径?别碰 tab_title_format
网上流传的在用户设置里加 "tab_title_format": "{relative_path}" 是无效的——Sublime 原生根本不认这个字段。它只被极少数插件(如 Tab Names)解析,不是核心功能。
- 真正可行的路径标签方案只有两个:装插件(如
Long Titles或Tab Context Menu),或写 Python 插件监听on_activated事件并调用view.set_name(file_name) - 自定义插件法虽灵活,但会覆盖原始标签名,导致多分组编辑时难以区分同名文件(比如多个
index.js) - 鼠标悬停在标签上时,状态栏会临时显示完整路径——这是免费且稳定的“查看”替代方案,无需任何配置
自定义状态栏内容必须用插件 API,纯配置走不通
Sublime Text 4 已废弃 status_bar.json,任何试图通过 JSON 配置文件动态添加字段的做法都无效。唯一可靠路径是 Python 插件 + view.set_status(key, value):
- key 必须全局唯一,两个插件若共用
"git_branch",后加载的必然覆盖前者——调试时得逐个禁用排查 - 推荐优先用成熟插件(如
Status Bar Manager+StatusBarGit),它们已处理好 Git 路径解析、跨平台换行符判断等细节 - 自己写插件时,务必在
on_activated和on_post_save两个事件里都调用更新逻辑,否则切换文件或保存后状态栏不会刷新
最易被忽略的是:状态栏字段没有命名空间,也没有生命周期管理。一个插件设了 view.set_status("size", "12KB"),另一个插件忘了 erase_status("size") 就直接设新值,残留旧信息可能持续几秒甚至更久——这不是 UI 卡顿,是 key 冲突。











