Sublime Text原生仅支持查看总行数和字符数,字数统计需WordCount插件,代码行统计应使用Project Statistics插件或终端工具。

Sublime Text 本身不区分“字数”和“字符数”,也不内置代码行(LOC)统计逻辑——自媒体写手要的“合同字数”,程序员要的“有效代码行”,得用不同方法,装不同插件,甚至绕开编辑器直接用终端。
怎么看当前文件总行数和字符数(原生最快法)
不用装任何插件就能立刻拿到两个关键数字:
- 按
Ctrl+A(Windows/Linux)或Cmd+A(macOS)全选文本,状态栏右下角立刻显示Selected: 1248 chars—— 这是全文 Unicode 字符总数,含空格、换行符、中文、emoji - 把光标移到文件末尾(
Ctrl+End或Cmd+End),状态栏括号里的数字就是总行数(例如127:5 (127)中的127),前提是没折叠代码;折叠区域里的行不会被计入
注意:view.size() 控制台命令返回值和 Selected: X chars 一致,但大文件反复调用可能卡 UI;最后一行末尾有没有换行符会影响行数结果——没换行时,Lines = 最大行号;有换行时,会多算一个空行。
自媒体要“字数”:必须装 WordCount 插件
“字数”不是字符数,也不是行数。WordCount 插件(作者 titoBouzout)是唯一能区分中英文词、过滤空格、识别段落边界的方案:
- 安装后重启 Sublime,状态栏才显示
Words: 87 | Chars: 521 | Lines: 12 - 中文统计依赖 UTF-8 编码:若文件是 GBK,一个汉字会被当两个字符计,务必先
File → Save with Encoding → UTF-8 - 右键选中文本 →
Word Count可单独统计选区;不选中则统计全文 - 快捷键可自定义,比如在
Preferences > Key Bindings加一行:{"keys": ["ctrl+alt+w"], "command": "word_count"}
它默认把连续空白(包括换行)压缩为一个分隔符,所以 "Hello 世界" 算 2 个 Words;但不会跳过 # 注释 或 // 行注释,这类内容仍计入字数。
程序员要“代码行数”:Project Statistics 是唯一靠谱选择
FileDiffs 和 WordCount 都不支持项目级聚合统计。真正能递归扫描整个文件夹、按扩展名分组、并允许正则过滤注释/空行的,只有 Project Statistics 插件:
- 安装后,在侧边栏右键项目根目录 →
Project Statistics → Count Lines in Project - 结果页包含每种扩展名的文件数、总行数、平均行数,还带导出按钮
- 想排除 Python 的
#注释和空行?改Preferences → Package Settings → Project Statistics → Settings – User,加字段:"line_filters": {"python": ["^\s*#.*$", "^\s*$"]} - 注意:该插件对无扩展名文件或编码异常文件容易卡住,大项目建议先用终端预筛:
find . -name "*.py" -size -1M | xargs wc -l
它统计的是原始文件内容的换行符数量 + 1,和 wc -l 行为一致,但不等价于“可执行代码行数”——函数签名、花括号独占行、装饰器都会被计入。
为什么别信“正则统计行数”或“状态栏显示的 127:5”
这两个是最常踩的坑:
- 状态栏右下角的
127:5是光标所在位置,不是总行数;折叠代码时,它只显示可视区域行号 - 用
Find → .* → Count统计行数,会漏掉最后一行(无结尾换行符时少算 1 行);用^.*$也一样,正则引擎默认不匹配空行 -
view.rowcol(view.size())返回的是(行索引, 列索引),行索引从 0 开始,总行数必须+1,否则永远少 1 - 所有基于 Sublime API 的批量统计(比如写 loop 遍历多个 view)都缺乏流式读取,大项目极易卡死或内存溢出
真正稳定、可复现、能进 CI 流程的代码行统计,从来不在编辑器里做——它只适合快速估算。一旦涉及交付、审计或团队规范,直接切到终端跑 tokei、cloc 或 git ls-files | xargs wc -l 才是实际做法。


















