sublime text 不内置项目总行数统计,需用命令行(如 find + wc 或 powershell)或自定义 build system 实现;插件方案不可靠,易出错且不支持编码识别。

Sublime Text 本身不内置项目总行数统计,得靠插件或命令行补足
Sublime Text 默认只显示当前文件的行数(状态栏右下角),不提供项目级代码行数统计。想看整个目录下 .py、.js、.ts 等源码总行数,必须借助外部工具或插件——但要注意:多数“统计插件”只是调用系统命令封装,底层仍是 find + wc(macOS/Linux)或 Get-ChildItem(PowerShell)。
推荐方案:用 Terminal / PowerShell 直接执行命令(最准、最快、无依赖)
比装插件更可靠,尤其对大项目。Sublime Text 自带终端(Ctrl+Shift+P → Terminal: New Terminal),进项目根目录后直接运行:
find . -name "*.py" -not -path "./venv/*" -not -path "./.git/*" | xargs wc -l
说明:
-
find . -name "*.py":递归找所有 Python 文件 -
-not -path "./venv/*":排除虚拟环境(按需替换为node_modules、dist等) -
xargs wc -l:统计每文件行数并汇总 - Windows 用户用 PowerShell:
Get-ChildItem -Recurse -Include "*.ts" | Where-Object { $_.FullName -notlike "*node_modules*" } | Get-Content | Measure-Object -Line
插件方案:Install Package Control 后装 FileDiffs 或 LineCount?别信宣传
搜 “Sublime line count plugin” 常看到 LineCount、ProjectStatistics,但实际问题很多:
-
LineCount只统计当前打开的文件(不是项目),且不支持过滤二进制或忽略目录 -
ProjectStatistics已多年未更新,Sublime Text 4 下大概率报错:AttributeError: 'Window' object has no attribute 'active_view' - 几乎所有 GUI 插件都卡在“无法正确识别编码”,遇到
utf-8-sig或 BOM 文件就少算甚至崩溃
如果非要在 Sublime 里点一下出结果:写个简易 Build System
不用装插件,5 分钟搞定一个可复用的“一键统计”:
菜单 → Tools → Build System → New Build System,粘贴以下内容(以统计 JS/TS 为例):
{
"shell_cmd": "find . \( -name "*.js" -o -name "*.ts" \) -not -path "./node_modules/*" -not -path "./dist/*" | xargs wc -l 2>/dev/null || echo 'No files found'",
"working_dir": "$project_path",
"variants": [
{
"name": "Python Only",
"shell_cmd": "find . -name "*.py" -not -path "./venv/*" -not -path "./.git/*" | xargs wc -l 2>/dev/null || echo 'No Python files'"
}
]
}
保存为 LineCount.sublime-build,之后 Ctrl+Shift+P → Build With: LineCount 就能跑。注意:
-
2>/dev/null是为了屏蔽find: ‘./.git/objects/pack’: Permission denied这类警告 - Windows 用户需改用
cmd模式并替换为forfiles或 PowerShell 命令,否则find会冲突 - 这个 build system 不解析语法,纯文本统计,所以空行、注释全算在内——这是真实行数,不是“有效代码行”
真正难的不是怎么数,是怎么定义“该算哪几类文件”和“哪些目录必须排除”。不同团队的 .gitignore 差异很大,硬编码路径容易漏,不如把规则写进脚本里统一维护。











