Word Count插件实时显示文档字数/行数,CodeMetrics专注函数级圈复杂度,VS Code Counter统计物理行但易受.gitignore干扰;三者功能不重叠,需按需选用。

直接看右下角状态栏——只要装了 Word Count 或 CodeMetrics,光标一停,行数、字符、圈复杂度就出来了,不用点菜单、不弹面板、不切终端。
Word Count 插件:适合纯文本/Markdown/HTML 的实时字数与行数
它不是为写代码设计的,但对文档类文件最稳,状态栏常驻显示 Words: 42 | Chars: 287 | Lines: 12 这类信息。
- 默认统计整个文件,选中一段文本后自动切换为选区统计(需开启
"wordcount.countSelectedText": true) - 中文支持靠
"wordcount.includeNonWordChars": false控制——关掉它,标点和空格不计入字符数;打开则全算 - 对
.ts或.py文件也能显示行数,但不区分注释/空行,也不识别函数边界,只当普通文本扫 - 如果状态栏没显示,检查是否被
"wordcount.excludedLanguages"误排除,比如加了"typescript"就会消失
CodeMetrics 插件:专注函数级逻辑行与圈复杂度
这才是写代码时真正需要的“当前文件”快照:光标停在函数体内,右下角立刻出现 LOC: 23 | CC: 7(逻辑行数 + 圈复杂度)。
- 只响应函数体内部——光标在类声明、import 行、空行或注释里,状态栏显示
N/A - 支持
async、箭头函数、嵌套方法,但对<script setup>(Vue)或 Svelte 的<script>块识别不稳定,可能漏算 -
"codemetrics.complexityThreshold": 10可设阈值,超限状态栏变红,提醒你该拆函数了 - 不统计整个文件总行数,也不管注释占比;想看文件级总数?得换
VS Code Counter或命令行
为什么右键“Count lines in file”有时不准
很多插件(如 VS Code Counter)的单文件统计其实是在模拟“整个目录只含这一个文件”的场景,容易受全局配置干扰。
- 若
"VSCodeCounter.useGitignore": true开启,而当前文件路径匹配了.gitignore规则(比如**/*.test.ts),它会被跳过,结果直接是 0 - 插件按正则判断注释行:
// init这种行尾注释算作code行;/* block */的中间行也归为code,只有起始/结束行算comment - JSON、MD、锁文件(
yarn.lock)默认也被扫——哪怕你只右键了一个.ts,插件仍可能把同目录下所有文本文件全拉进来 - 最稳的办法:用内置命令
Ctrl+Shift+P→ 输入File: Show Statistics(部分主题或设置下可用),或直接开终端跑wc -l current.ts
别指望一个插件包打全部——Word Count 看字数,CodeMetrics 看函数健康度,VS Code Counter 看物理行分布。三者共存不冲突,但各自生效范围和判断逻辑完全不同,混用前先看清它到底在数什么。


















