tokei 是最准最快的代码行数统计工具,自动识别语言、剔除注释与空行、严格遵循 .gitignore;vscode 插件因不解析语法、不跳过生成文件且忽略 .gitignore 而普遍失真。

直接用 tokei 命令行工具,比所有 VSCode 插件都准、都快、都不用配排除规则——它自动识别语言、跳过注释与空行、严格遵守 .gitignore。
为什么 VSCode 插件统计总行数普遍不准
多数插件(如 VSCodeCounter、Project Statistics)只是递归读取文件并粗暴计数换行符,既不解析语法,也不剔除注释/空行,更不真正尊重 .gitignore。常见失真来源包括:
-
node_modules、yarn.lock、dist/等目录默认被全量计入,单个锁文件就可能贡献上万行 -
.vue文件被当 HTML 处理,<script></script>里的 JS 行算进 HTML 类别,JS 行数偏低 - JSON、MD、图片资源(若误配为文本)也被扫入,结果虚高 3–10 倍
- 插件配置项(如
useGitignore)需手动开启且重启才生效,热重载无效
tokei 是目前最稳的命令行方案
它不依赖 VSCode 插件机制,安装后直接运行即得结构化结果,关键优势是“开箱即准”:
- macOS:
brew install tokei;Windows:choco install tokei;Linux:cargo install tokei - 在项目根目录执行:
tokei,输出含code(有效逻辑行)、comment、blank三列 - 自动跳过
node_modules、.git、dist等所有.gitignore中声明的路径 - 能正确识别
.vue文件结构,把<script></script>、<template></template>、<style></style>分开归类 - 加
--output json可导出供脚本处理,比如提取 TypeScript 总code行:tokei --output json | jq '.["TypeScript"].code'
想在 VSCode 里一键触发 tokei?配个 task 就行
避免反复切终端,把 tokei 绑定成 VSCode 内置任务:
- 编辑项目根目录下的
.vscode/tasks.json,填入 type 为shell的任务(不是process) - 确保
"presentation": { "panel": "shared", "clear": true },否则旧结果会堆叠干扰 - 保存后按
Ctrl+Shift+P→ 输入Tasks: Run Task→ 选count lines - 快捷键可自定义:打开键盘快捷方式(
Ctrl+K Ctrl+S),搜workbench.action.terminal.runSelectedText类动作绑定
真正容易被忽略的点是:插件永远在“扫描静态文件”,而你关心的其实是“哪些代码是人写的、可维护的”。tokei 的 code 列已经过滤掉注释和空行,但如果你项目里有大量生成代码(如 .nuxt/、.output/),哪怕它们不在 .gitignore 里,也得手动加 --exclude 参数临时绕过——这时候别硬改插件配置,直接终端跑一句 tokei --exclude .nuxt --exclude .output 更快。











