Sublime状态栏需手动启用编码和字数显示:设"show_encoding_on_status_bar": true显编码,WordCount插件需开启"show_in_status_bar": true;StatusMessage可统一管理元信息;自定义插件要注意API兼容性与状态栏空间限制。

Sublime 默认不显示字数,编码信息也可能被隐藏——必须手动启用或装插件才能稳定看到。
状态栏为什么没显示文件编码
不是插件问题,而是 show_encoding_on_status_bar 默认为 false。即使你看到右下角有“UTF-8”,那也可能是其他插件(比如 StatusMessage)在渲染,不是 Sublime 原生行为。
- 打开
Preferences → Settings – User,确保包含这一行:"show_encoding_on_status_bar": true - 改完保存,无需重启,状态栏左下角立刻出现编码名(如
UTF-8、Western (Windows 1252)) - 如果仍不显示,检查是否启用了
show_encoding(旧版兼容项),但新版只认show_encoding_on_status_bar - 注意:这里显示的是 Sublime “当前用什么编码解码该文件”,不是文件原始编码;若误判为
Western,说明它把中文当成了乱码,应手动File → Reopen with Encoding → UTF-8
WordCount 插件怎么让字数常驻状态栏
装完 WordCount 后默认只在命令面板里弹窗统计,show_in_status_bar 必须显式开启,否则状态栏永远空白。
- 进入
Preferences → Package Settings → WordCount → Settings - 在右侧用户设置中加入:
"show_in_status_bar": true - 可选增强:
"count_by": "words"(或"chars"、"lines"),但状态栏一次只显示一种主计数 - 若想同时看多个值(如字数+字符数),必须用
status_bar_format自定义,例如:"status_bar_format": "字数: {words} | 字符: {chars}" - 常见失效原因:文件设为只读(
View → Read Only)、编码解析失败(含 BOM 的 GBK 文件易出错)、或 UI 主题压缩了状态栏宽度导致文字被截断
StatusMessage 插件如何统一管理编码/换行/语法等字段
比起零散启用多个插件,StatusMessage 提供统一模板控制,适合想把编码、换行符、语法、行数塞进一行显示的用户。
- 安装后,打开
Preferences → Package Settings → StatusMessage → Settings - 填入格式字符串,例如:
"format": "编码: {encoding} | 换行: {line_ending} | 类型: {syntax} | 行数: {line_count}" - 支持变量包括:
{encoding}、{line_ending}、{syntax}、{line_count}、{file_size}(字节数)、{cursor_row}等 - 注意:
{file_size}显示的是字节数,不是字符数;若要字符总数,得靠 WordCount 或自定义插件调用view.size() - 该插件不处理字数统计,和 WordCount 可共存——StatusMessage 管基础元信息,WordCount 管内容度量
自定义 Python 插件显示项目名或 Git 分支时的坑
直接抄网上的 ShowProjectNameStatus 示例容易失效,因为 Sublime API 版本迭代后部分方法已弃用,且事件监听逻辑容易漏掉关键触发点。
- 别用
on_activated单独监听,必须补上on_post_save和on_load,否则切换标签页或重载文件后状态栏不更新 - 获取项目名时,
window.project_file_name()在无项目时返回None,需加if window and window.project_file_name():判断,否则报AttributeError - Git 分支需要额外依赖 GitGutter 或自己调用
subprocess执行git rev-parse --abbrev-ref HEAD,但 Windows 下路径空格或权限问题会导致命令静默失败 - 状态栏 key(如
'custom_project')不能重复,否则多个插件会互相覆盖;建议加前缀,如'my_project_name' - 调试时打开 Sublime 控制台(
Ctrl+`),所有print()和异常都会输出在那里,比盲猜靠谱得多
最麻烦的其实是状态栏空间——高 DPI 屏幕或紧凑主题下,哪怕只多加两个字段,就可能把右边的编码信息顶出视野。与其堆砌信息,不如先确认哪些字段真正影响当前工作流。

















