StatusMessage是Sublime最稳定的自定义状态栏插件,通过JSON配置可显示编码、行数、大小等信息,不修改原生逻辑且升级不丢配置;原生设置仅支持固定变量且无法拼接字符串。

Sublime 状态栏默认只显示编码、换行符和语法类型,想加文件大小、行数、Git 状态等信息,必须靠插件;原生配置做不到。
StatusMessage 是目前最稳的自定义方案
它不改 Sublime 原生逻辑,只是在状态栏右侧注入格式化文本,升级后不丢配置,也不容易和其他插件冲突。
- 按
Ctrl+Shift+P输入Package Control: Install Package,搜索并安装StatusMessage - 安装后进入
Preferences → Package Settings → StatusMessage → Settings - 填入类似这样的 JSON(注意用双引号):
{"format": "编码: {encoding} | 行数: {line_count} | 大小: {file_size} | 换行: {line_ending}"} - 保存后,新打开的文件立即生效;已打开的文件可能需手动触发一次重绘(比如切换 Tab 或按
Ctrl+Shift+P→Refresh Status Bar)
为什么不用原生 show_encoding 配置扩展字段
原生状态栏只支持固定几个变量:{encoding}、{line_ending}、{syntax},且无法拼接字符串或添加分隔符。你不能在用户设置里写 "status_bar_format": "编码: {encoding}"——这个键根本不存在,Sublime 会直接忽略。
-
show_encoding只控制“是否显示编码”,不是“怎么显示” -
show_line_endings同理,只开关换行符显示,不提供自定义能力 - 试图修改
Packages/StatusBar/status_bar.py属于高危操作:升级后被覆盖、易引发崩溃、且不支持动态变量
别踩这些坑:插件共存时的显示异常
多个插件同时往状态栏写内容,容易互相覆盖或错位,尤其当你还装了 ConvertToUTF8、DocumentEncoding 或 GitGutter 时。
-
StatusMessage默认插入位置是状态栏最右侧;如果其他插件也占右端,可能被挤掉或截断 - 若发现
{file_size}显示为0 B,说明文件尚未保存(即仍是缓冲区),此时磁盘无实际字节 - 某些主题(如
Adaptive或第三方 UI 主题)会压缩状态栏高度,导致多字段换行或省略,可临时切回默认主题验证 -
StatusMessage不读取 Git 状态,想显示分支名得额外装GitSavvy并启用其 status bar 支持
真正麻烦的不是加字段,而是字段值本身不可靠:比如 {encoding} 显示 UTF-8,但文件实际是 GBK 字节——这时你看到的只是 Sublime 的误判结果,不是真相。

















