StatusMessage插件装完无反应是因为默认不输出内容,必须手动配置format字段且priority≥100,同时需禁用show_encoding_on_status_bar和WordCount的状态栏输出,统一由StatusMessage接管;未保存文件中{encoding}显示Plain Text属正常,Mac上显示截断应精简格式如“编码:{encoding}|字:{words}|行:{line_count}”。

StatusMessage插件装完为啥状态栏没反应?
装完插件不等于自动生效——它默认不输出任何内容,必须手动配置format字段,且priority要设够高,否则会被WordCount、GitGutter等插件的输出压掉。
- 打开
Preferences → Package Settings → StatusMessage → Settings - 在右侧用户设置中填入完整JSON对象,不能只写片段:
{"format": "编码: {encoding} | 字: {words} | 行: {line_count}", "priority": 100} -
priority必须≥100,低于这个值(比如50)时,WordCount自己的状态栏输出仍会抢位置 - 如果用的是旧版StatusMessage(v1.2以下),
format字段名可能是status_bar_format,需查插件文档确认
怎么让{encoding}和{words}同时稳定显示?
原生show_encoding_on_status_bar和WordCount的show_in_status_bar是两套独立系统,强行共存会互相覆盖或错位。正确做法是关掉它们,全交给StatusMessage统一接管。
- 在
Preferences → Settings – User里删掉或注释掉:"show_encoding_on_status_bar": true - 进
WordCount → Settings,把"show_in_status_bar": true改成false - 确保WordCount仍开启统计功能:
"show_word_count": true(否则StatusMessage读不到{words}) - 注意:未保存文件(
untitled)没有编码上下文,{encoding}会显示为Plain Text,这是正常行为
Mac上字数显示被截断怎么办?
Sublime状态栏右侧区域宽度有限,Mac平台对Unicode字符计宽更严格,超过约20个“显示宽度单位”就会省略末尾(不是换行,是直接砍掉)。
- 避免用长中文前缀,比如
"当前字数:{words} / 总字符数:{chars}"极易被截 - 改用紧凑格式:
"编码:{encoding}|字:{words}|行:{line_count}" - 如果还挤,可删掉
{line_count},或用单字母缩写:"enc:{encoding}|w:{words}" - 别依赖
status_bar_height调高——那是整个状态栏高度,不影响单行文本渲染宽度
自定义字段(如Git分支、文件大小)能加进去吗?
可以,但StatusMessage本身不提供{git_branch}这类变量,得靠Python插件生成并注入到view.set_status(),再让StatusMessage引用。
- 新建
Packages/User/git_status.py,监听on_activated_async,执行git rev-parse --abbrev-ref HEAD拿到分支名 - 用
view.set_status("git_branch", branch_name)写入临时键 - 在StatusMessage的
format里写"分支: {git_branch}"即可读取 - 注意:命令行
git必须在PATH里,否则返回空;非Git项目会得到None,建议加默认值:"分支: {git_branch|No Git}"
view.status(),而不是看配置写得有多漂亮。


















