统计代码行数工具总结
概述
统计项目代码行数(Lines of Code,简称 LOC 或 SLOC)是软件开发中常见的需求,可用于评估项目规模、开发进度、代码质量、团队产出等。本文介绍常用工具与方法,涵盖命令行工具(跨平台/语言无关)、语言专用工具、IDE 集成、以及在线/图形化工具,帮助你全面、灵活地统计代码行数情况。
一、通用命令行工具(适用于任何文本/代码文件)
1. wc -l(Linux/macOS,最基础)
功能:统计文件的行数,常用于粗略统计代码行数。
命令示例:
# 统计当前目录下所有 .java 文件的行数
find . -name "*.java" | xargs wc -l
# 统计所有代码文件(自定义扩展名)
find . -type f \( -name "*.java" -o -name "*.py" -o -name "*.cpp" -o -name "*.c" -o -name "*.h" \) | xargs wc -l
优点:无需安装,速度快,适用于所有文本文件。
缺点:不区分代码/注释/空行;只能简单统计行数,不提供详细分类(如文件数、目录、语言等)。
2. cloc(推荐,最强大、最智能)
全称:Count Lines of Code
功能:专门用于统计项目代码行数,能区分代码、注释、空白行,支持几乎所有主流编程语言,还能按语言、目录、文件等分类统计。
安装方式:
- macOS:
brew install cloc - Linux (Debian/Ubuntu):
sudo apt install cloc - Windows: 可通过 chocolatey (
choco install cloc) 或直接下载 Perl/Python 版本运行 - 或直接下载源码运行(支持 Perl/Python 实现)
使用示例:
# 统计当前目录及子目录所有代码
cloc .
# 统计指定目录
cloc /path/to/your/project
# 统计特定文件类型
cloc --include-lang=Java,Python,Kotlin .
# 输出为 JSON / XML(适合集成到 CI/CD)
cloc --json .
cloc --xml .
输出示例:
language files blank comment code
-------------------------------------------------------------------------------
Java 45 1200 3000 15000
Python 12 300 500 4000
Markdown 5 50 5 300
-------------------------------------------------------------------------------
SUM: 62 1550 3505 19300
优点:
- 智能识别代码/注释/空行
- 支持 400+ 编程语言
- 可输出多种格式(text/json/xml/csv)
- 支持按目录、语言过滤
- 适合项目报告、CI 集成、团队统计
缺点:需要安装,但非常轻量且跨平台
✅ 推荐指数:⭐⭐⭐⭐⭐(最推荐)
二、IDE 内置工具(适合开发阶段快速查看)
1. IntelliJ IDEA / Android Studio
功能:内置代码统计,可查看当前文件/项目/模块的代码行数、代码复杂度、注释等。
操作路径:
- 右键项目/目录 → Show in Explorer 或使用菜单:
- View → Tool Windows → Project,右键目录 → Calculate Code Metrics 或类似选项(不同版本可能略有差异)
- 或安装插件如 "Statistic"(强烈推荐)
插件推荐:Statistic
- 提供详细的代码统计:文件数、代码行、注释行、空行、各类语言分布等
- 支持图表展示
- 安装:
File → Settings → Plugins → 搜索 "Statistic",安装后重启 IDE
2. Eclipse
- 可通过插件如 Metrics、CodePro AnalytiX(旧版)实现代码统计
- 或使用内置的搜索功能配合正则表达式手动统计(较原始)
3. VS Code
本身不直接提供详细代码行数统计,但可通过插件实现:
插件推荐:
- CodeMetrics:统计当前文件/项目代码行、注释等
- Project Manager + 搜索功能 配合筛选
- WakaTime(偏向开发行为统计,含代码量)
三、其他工具与平台
1. GitHub / GitLab / Bitbucket
内置 Insights / Repository Statistics
- GitHub:仓库首页有时会显示 "代码行数"概览(主要统计 commit 中的增减,非精准 SLOC)
- GitHub Advanced Security / 第三方 Action(如
tokei、cloc-action)可生成更细致报告
第三方 GitHub Action 示例:
- 使用 cloc-action 在 CI 中统计并输出代码行数报告
2. Tokei(Rust 编写,速度快,支持多语言)
官网 / GitHub: github.com/XAMPPRocky/…
特点:比 cloc 更快(Rust 实现),支持几乎所有语言,输出简洁,适合脚本与自动化
安装:
- macOS:
brew install tokei - Linux: 可通过 cargo 安装:
cargo install tokei - Windows: cargo 或下载 release binary
使用:
tokei .
tokei --output json .
优点:速度快,支持多语言,输出格式灵活
缺点:对某些小众语言支持可能略逊于 cloc
✅ 推荐指数:⭐⭐⭐⭐(速度快,适合自动化)
四、统计维度举例(好的工具应该提供)
一个优秀的代码行数统计工具,通常会提供以下信息:
| 维度 | 说明 |
|---|---|
| 总行数 | 所有代码行的总和 |
| 代码行(Code) | 实际的程序语句(不含注释和空行) |
| 注释行(Comment) | 单行/多行注释 |
| 空行(Blank) | 仅含空格/制表符/换行的行 |
| 文件数 | 项目中有多少源代码文件 |
| 目录/包/模块统计 | 按目录、语言、模块分组统计 |
| 语言分布 | 各种编程语言的代码量占比 |
| 历史趋势(结合 Git) | 通过 git log 分析代码增量(需额外工具) |
五、总结推荐
| 工具 | 适用场景 | 特点 | 推荐指数 |
|---|---|---|---|
| cloc | 通用、跨平台、支持几乎所有语言、可输出多种格式 | 智能识别代码/注释/空行,分类清晰,适合报告与分析 | ⭐⭐⭐⭐⭐ |
| tokei | 需要更快的统计、Rust 实现、支持多语言 | 速度快,输出简洁,适合脚本和 CI | ⭐⭐⭐⭐ |
| IDE 插件(如 Statistic、Metrics) | 开发阶段快速查看 | 图形化友好,集成在 IDE 中 | ⭐⭐⭐⭐ |
| wc -l | 极简统计需求,快速粗略计数 | 无需安装,但功能极其基础 | ⭐⭐ |
| GitHub Actions / cloc-action | CI/CD 中自动统计 | 适合自动化报表和项目管理 | ⭐⭐⭐⭐ |
✅ 总结一句话
如果你需要一个功能全面、智能、支持多语言、可生成详细报告的代码行数统计工具,推荐使用 cloc;如果追求速度和轻量,可以选择 tokei;在 IDE 中开发时,可以安装 Statistic 等插件实时查看。
你可以根据你的操作系统、项目语言、是否需要图形化/自动化/集成等需求,选择最适合你的工具。如果需要,我可以帮你写出一条命令,直接统计你当前项目的代码行分布 😊。