sublime text无内置项目级代码行数统计功能,需借助filediffs或wordcount插件,或通过自定义build system调用系统命令实现;注意编码与换行符对统计结果的影响。

Sublime Text 里没有内置的项目级代码行数统计功能
Sublime Text 本身只提供单文件的行数显示(状态栏右下角),不支持开箱即用的「整个文件夹/项目」字符、行数、文件数统计。想获得类似 git ls-files | xargs wc -l 的效果,必须借助插件或外部命令集成。
推荐用 Package Control 安装 FileDiffs 或 WordCount 插件
这两个插件能快速补足缺失能力,但用途不同,选错容易白忙活:
-
FileDiffs:侧重多文件对比,但附带Tools → FileDiffs → Count Lines in Selected Files功能,支持选中多个标签页或侧边栏文件批量统计行数(含空行、注释) -
WordCount:原生支持当前文件 + 选中文本,但默认不扫描目录;需手动右键侧边栏文件夹 →Word Count: Count in Folder,会递归统计所有可读文本文件(.py/.js/.md 等),结果以新标签页展示,含总行数、非空行、字符数、单词数 - 注意:
WordCount对二进制文件(如 .png/.zip)会跳过,但遇到无扩展名或编码异常的文件可能卡住 —— 建议先用find . -type f -size -1M过滤大文件再运行
用 Sublime 的 Build System 调用系统命令最灵活
Windows/macOS/Linux 都能用,且能自定义过滤规则(比如只算 .py 和 .js):
- 新建
Tools → Build System → New Build System - 填入以下内容(以 macOS/Linux 为例):
{
"shell_cmd": "find '${file_path}' -name "*.py" -o -name "*.js" | xargs wc -l 2>/dev/null | tail -1 | awk '{print "Lines:", $1}'",
"working_dir": "${file_path}",
"variants": [
{
"name": "All Text Files",
"shell_cmd": "find '${file_path}' -type f -exec file {} \; | grep -i 'text' | cut -d: -f1 | xargs wc -l 2>/dev/null | tail -1"
}
]
}
保存为 LineCount.sublime-build,之后右键项目根目录 → Build With → LineCount 即可。Windows 用户把 find 换成 forfiles 或直接用 PowerShell 命令(Get-ChildItem -Recurse -Include *.py,*.js | Get-Content | Measure-Object -Line)。
别忽略编码和换行符对统计结果的影响
Sublime 默认按 UTF-8 解析文件,但若项目混有 GBK、ISO-8859-1 编码文件,WordCount 可能报错或漏统计;而 shell 命令如 wc -l 统计的是换行符
个数,Windows 的
仍算一行,但某些工具会把末尾无换行符的文件少算一行 —— 实际交付前,建议用 file $(find . -name "*.py") 先确认编码一致性,再决定是否加 sed -i '$a' 补换行。











