sublime text 原生支持选中文本后在状态栏显示行数、列数、行数和单词数统计,需在 settings – user 中启用 "show_word_count": true 并确保语法定义正确;未选中时默认统计全文,且不支持中文分词与富文本处理。

选中后直接看统计信息,不用装插件
Sublime Text 原生就支持选中文本后的基础统计,但默认不显示在状态栏——得手动打开。开启后,只要光标在选区内或选中任意文本,右下角状态栏就会实时出现 Ln XX, Col YY (N lines, M words) 这类提示。
操作很简单:Preferences → Settings – User,在右侧 JSON 中加入这一行:
"show_full_path": true, "status_bar_visible": true, "show_line_endings": true, "show_encoding": true, "show_spaces": true, "show_word_count": true
注意:"show_word_count" 是关键项,它控制是否在状态栏显示单词数(含行数)。重启 Sublime 或保存配置后立即生效。如果没反应,检查是否拼错成 show_word_counts(带 s)或写在了错误的 JSON 层级里。
为什么有时显示 “0 words” 或行数不准?
Sublime 的 show_word_count 统计依赖于当前视图的语法定义(syntax definition)。比如你选中一段 JSON 或 HTML,但文件被识别为 Plain Text,它可能把整个 {"key": "value"} 当作一个“词”,或者跳过引号内内容。
- 确认右下角语法标识(如
Plain Text)是否正确,点它可手动切换为JSON、Markdown等 - 某些自定义语法包(尤其老旧的)会覆盖默认的
word_separators,导致分词异常 - 空行、纯空白字符行会被计入行数,但不会贡献单词数——这属于预期行为,不是 bug
需要更精确统计?用 Python 控制台临时补位
原生统计只给总数,没法区分代码行/注释行/空行。真要细粒度分析(比如写文档时统计有效内容),可以临时调出 Sublime 的 Python 控制台(Ctrl+`),粘贴执行这段:
import re
s = view.substr(view.sel()[0]) if view.sel() else ""
lines = len(s.splitlines())
words = len(re.findall(r'\b\w+\b', s))
print(f"{lines} lines, {words} words")
这段代码会严格按换行符算行数、按单词边界(\b\w+\b)算单词,避开标点干扰。适合一次性验证,不建议长期依赖——毕竟每次都要手动开控制台、选中、粘贴、回车。
别指望它替代专业字数工具
Sublime 的统计是轻量级的,不处理富文本、不过滤 Markdown 表格符号、不支持导出、也不兼容中文分词逻辑(比如“人工智能”会被当 1 个词而非 4 字)。如果你常做技术文档交付或投稿,还是得用专门工具:VS Code 配 WordCount 插件、Typora 底部实时统计、甚至命令行跑 wc -l -w file.md 更可靠。
真正容易被忽略的是:状态栏统计只响应「当前选区」,如果你没选中任何文本,它显示的是整篇文档的统计——这个切换是静默的,没有任何视觉提示,很容易误读数据。











