Sublime Text中“总字数”无统一定义,view.size()返回Unicode码位总数(含空格、换行符、中文、emoji),非出版字数;全选后状态栏显示的“chars”即此值,最准最快;Tools: Word Count仅在无选区时统计全文,有选区则仅统计选区;BetterWordCount插件支持中英文混合可控统计;所有统计均依赖UTF-8编码,GBK下中文会被误计。

Sublime Text 里“总字数”没有统一定义,view.size() 返回的是 Unicode 码位总数(即字符数),不是出版或合同场景下的“字数”。你要的到底是字符个数、中英文混合写作字数,还是去掉空格换行的净内容长度,方法完全不同,混用必错。
全选看状态栏是最准最快的字符总数
这是 Sublime 原生功能,不依赖插件、不卡顿、结果即 view.size() —— 所有可显示/不可见字符的 Unicode 码位总数。
- 按
Ctrl+A(Windows/Linux)或Cmd+A(macOS)全选当前文件 - 右下角状态栏立刻显示类似
Selected: 1842 chars的提示 - 该值包含空格、
\n、\t、中文、emoji,但不含 BOM(除非被误读为普通字符) - 文件 >50MB 时可能延迟或无响应,此时应放弃全选,改用
view.size()或命令行工具
Tools: Word Count 弹窗只在未选中时统计全文
这个原生命令常被误解。它弹出的面板里确实有 Characters 和 Characters (no spaces),但这两个值都只在你未选中文本时才代表全文;一旦有选区,就只统计选区 —— 而且界面完全不提示“这是全文”还是“这是选区”。
- 触发方式:
Ctrl+Shift+P→ 输入Tools: Word Count→ 回车 -
Lines是真实总行数(= 换行符数量 + 1),和wc -l行为一致 - 对中文文本,它不拆分也不合并,只是按码位计数,所以“世界”算 2 个字符 —— 这没错,但它不是“出版字数”
- 别信网上说的“右键→Word Count 就能看全文”,右键菜单行为取决于是否已选中内容
BetterWordCount 插件适合中英文混合可控统计
如果你需要区分“中文按字、英文按词”,或想开关换行符/空格是否计入,就必须用插件。原生方案做不到这些。
- 安装后状态栏默认显示类似
1284c / 302w(c= characters,w= words) - 默认统计包含换行符和空格;如需排除换行符,可在
Preferences → Package Settings → BetterWordCount → Settings中修改:"count_line_endings": false - 它对 UTF-8 中文识别准确,不会把一个汉字拆成多个
\u4f60计数 - 原生
WordCount插件对中文支持弱(常把一个汉字当多个字符),BetterWordCount是目前最稳定的替代方案
Python 控制台调 view.size() 是最底层验证方式
它直接读取 Sublime 内部视图缓冲区长度,比任何插件都轻量,也避开了插件兼容性问题。
- 按
Ctrl+`打开 Python 控制台,输入:view.size() - 返回值是整数,即全文 Unicode 字符个数(不是字节数,也不是“写作字数”)
- 和
len(view.substr(sublime.Region(0, view.size())))等价,但更快 - 在大文件中频繁调用可能短暂阻塞 UI,不建议用于批量脚本循环
真正容易被忽略的是:所有“字符数”结果都依赖文件编码是否为 UTF-8。GBK 编码下,BetterWordCount 会把一个汉字当两个字符计;view.size() 虽仍返回码位数,但前提是 Sublime 正确解析了文件 —— 若误判为二进制(比如状态栏显示 Selected: 0 chars),先 File → Reopen with Encoding → UTF-8 再试。


















