Sublime Text状态栏由插件控制,原生不支持配置;需用StatusBarCustom等插件通过JSON配置实现定制,或自行编写插件调用set_status()动态更新。
状态栏显示内容由插件控制,原生不支持直接配置
Sublime Text 底部状态栏(status bar)默认显示光标位置、编码格式、换行符、语法类型等,但这些不是靠修改配置文件就能改的——
或
里没有 status bar 相关字段。它实际由插件动态写入,核心机制是调用
和
。
这意味着:想改状态栏,你得写一个插件,或装一个现成的、支持自定义的插件(比如
或
),否则纯配置无法生效。
推荐用 StatusBarCustom 插件实现灵活定制
是目前最轻量、更新活跃、且真正支持 JSON 驱动状态栏字段的插件。它不依赖 Python 脚本编写,而是通过
文件声明字段逻辑。
安装后,在
打开配置
每个字段是一个对象,含
(唯一标识)、
(显示文本,支持变量如
、
、
)和可选的
变量替换在每次视图变化时自动触发,比如保存文件后
会刷新
注意:
中不能写 Python 表达式,只认预设变量;要执行逻辑得用
类钩子 + 自定义插件
示例片段:
自己写插件改状态栏?关键点在事件监听和 set_status 调用时机
如果你需要动态内容(比如当前函数名、TODO 数量、LSP 响应状态),就得写插件。常见错误是:在插件
里调用
后没清空旧值,导致重复叠加;或在
里没检查
是否为 None(无窗口的 view 会 crash)。
仿Sublime和notepad++编辑器效果
仿Sublime和notepad++编辑器效果
下载
必须监听
来响应光标移动(比如实时更新行列号)
修改状态栏前先用
清除同 key 的旧值,避免残留
涉及异步操作(如调用
获取 git 分支)务必用
包裹,否则阻塞 UI
的
建议带前缀(如
),避免和其他插件冲突
为什么改完没反应?检查这三处
状态栏不更新,90% 是以下原因:
插件未启用:打开
,确认没禁用相关插件
配置路径错:用户设置文件必须叫
,放在
下,不是
变量不存在:比如用了
,但当前文件不在 git 仓库内,该变量会被忽略,整个字段可能不显示(取决于插件实现)
调试技巧:在插件里加
并查看
输出;或临时把
改成固定字符串(如
)确认是否加载成功。
状态栏字段本质是键值对缓存,没有“全局刷新”按钮——改配置后必须切换标签页或重启 Sublime 才能重载,这点容易被忽略。
Preferences.sublime-settingsSettings - Userview.set_status(key, value)window.set_status(key, value)StatusBarEditorStatusBarCustomStatusBarCustomStatusBarCustom.sublime-settingsPreferences → Package Settings → StatusBarCustom → Settingskeytext${file_name}${line}${col}priority${file_mod_time}texton_modified
{
"status_bar_custom": [
{
"key": "my_file_size",
"text": "size: ${file_size_bytes}B"
},
{
"key": "my_git_branch",
"text": "git: ${git_branch}",
"priority": 100
}
]
}on_activatedset_statuson_post_saveview.window()on_selection_modified_asyncview.erase_status(key)subprocesssublime.set_timeout_asyncset_statuskeymyplugin_line_infoPreferences → Package Control → Disable PackageStatusBarCustom.sublime-settingsPackages/User/Preferences.sublime-settings${git_commit_hash}print()Sublime Text → View → Show Consoletext"DEBUG: OK"