wordcount插件统计的是unicode码位总数(含空格、换行符等),非出版字数;需用betterwordcount并配置参数才能实现中英文混合的准确字数统计。

WordCount插件统计的是“字符数”不是“出版字数”
很多人装完 WordCount 就直接看状态栏的 Chars 值,以为这就是合同或投稿要求的“字数”,结果发现和 Word、Typora 差一大截——因为 Chars 是 Unicode 码位总数,包含空格、\n、\t、中文、emoji,但不跳过折叠代码块,也不按语义切分“词”。比如 "Hello 世界" 的 Chars 是 10,而出版场景下“字数”通常是 7(英文按字母计、中文按字计,空格不计)。
如果你要的是中英文混合写作的可控统计(比如“人工智能”算 4 字、“hello world”算 2 词),原生 WordCount 不行,得换 BetterWordCount 插件,并在设置里关掉 "count_line_endings": true 或开启 "count_chinese_characters_as_words": true。
Tools: Word Count 命令只统计当前选区
这个原生命令名字有误导性:它**不区分“全文”和“选区”**,界面也不提示。你没选中任何文本时,它统计全文;一旦光标落在某段文字里或划了一行,它就只算那部分——而且弹窗里的 Characters 和 Characters (no spaces) 都是针对当前 selection 的。
- 误操作典型场景:写完稿子随手点了一下某句话,再按
Ctrl+Shift+P→Tools: Word Count,结果看到的不是全文数据 - 安全做法:统计前先按
Ctrl+A全选,再触发命令;或者干脆别用它,改用状态栏Selected: XXX chars(更快更准) - 注意:
Lines值始终是真实总行数(= 换行符数量 + 1),不受选区影响,这点可放心用
状态栏显示的“127:5”不是总行数
右下角那一串数字(如 127:5)是“当前光标所在行:列”,不是文件总行数。想确认真实行数,有两个可靠办法:
使用tbot机器ID身份文件配合tsh CLI,通过Teleport访问控制SSH登录托管主机或执行远程命令。
- 把光标移到文件末尾(
Ctrl+End或Cmd+End),状态栏显示的行号就是总行数(Sublime 行号从 1 开始) - 运行
Tools: Word Count,看弹窗里的Lines值——它和wc -l行为一致,但受最后一行是否含换行符影响:无换行时,Lines = 最大行号;有换行时,可能多出一个空行
别信正则 ^.*$ 统计行数,它在文件末尾没换行符时会少算 1 行。
大文件(>50MB)下别全选,改用 view.size()
Ctrl+A 全选再看状态栏是最常用方法,但它在超大文件里会卡顿甚至无响应。这时应切换到 Sublime 的 Python 控制台(Ctrl+`),手动执行:
view.size()
这个值等于状态栏显示的 chars,但不触发 UI 渲染,更轻量稳定。注意两点:
-
view.size()返回的是 Unicode 码位数,不是 UTF-8 字节数,也非“写作字数” - 别在循环里反复调用它批量处理多个大文件,Sublime 没做流式优化,容易阻塞 UI
真正麻烦的是:所有这些方法都依赖 UTF-8 编码。如果文件是 GBK,中文会被拆成多个 \uXXXX 计数,结果完全错乱——遇到乱码文件,先转码再统计。










