3分钟摸清代码统计:Tokei 新手命令实用指南

发布时间:2026/11/2 18:52:34
3分钟摸清代码统计:Tokei 新手命令实用指南

3分钟摸清代码统计:Tokei 新手命令实用指南

【免费下载链接】tokeiCount your code, quickly.项目地址: https://gitcode.com/gh_mirrors/to/tokei

Tokei 是一款用 Rust 编写的代码行数统计命令行工具:递归扫描目录,按语言输出文件数、总行数、代码、注释、空白行。它支持 150 多种语言,百万行仓库数秒跑完。适合想摸清仓库规模的开发者,和需要代码统计数据的团队,装完即用。

🚀 5分钟跑通:装好 Tokei 并出第一份统计

装好 Tokei 只需一条最短路径:有 Rust 工具链时,直接从 crates.io 安装。

cargo install tokei

其他平台一行带过:macOS 用brew install tokei,Windows 用winget install XAMPPRocky.tokei,Linux 各发行版(Arch、Fedora 等)的软件源里也都有;不想装 Rust 工具链,也可以直接下载预编译二进制。

装完进项目根目录,跑第一条统计命令:

tokei .

输出是一张表:每行一种语言,列依次为 Files(文件数)、Lines(总行数)、Code(代码行)、Comments(注释行)、Blanks(空白行),最下面的 Total 行是全部语言的合计。默认按语言名字母序排列,百万行级别的仓库通常几秒内跑完。

📊 三个高频使用场景

接手仓库:总览规模

问题:接手老仓库或 code review 前,需要一次规模总览。只统计你关心的目录:

tokei ./src ./web

多个目录会合并成同一张表,Total 行是加总。Code 列剔除了注释和空白,是真实代码量;对比各语言占比,能看出仓库主体在哪。

多语言 monorepo:找出主力语言

问题:前端、后端、脚本混在一个仓库里,需要知道代码集中在哪:

tokei . -s code

-s按列排序,可选 files、lines、code、comments、blanks,加-r反转。输出第一行就是代码最多的语言,Lines 列是该语言代码、注释、空白三者的总和。

CI 报告:喂给脚本的数据

问题:统计要写进报告或交给脚本解析,不是给人看的:

tokei . -o json > stats.json

输出是纯 JSON,每种语言一个条目,末尾带 Total 汇总字段,数字和表格完全一致,可直接解析。想换 yaml 或 cbor,需要在安装时开启对应 feature,见下一节。

🔧 进阶:参数组合与格式定制

统计的准确性来自状态机式的解析器:它逐行跟踪多行注释和嵌套注释的状态,字符串里出现的/*不会被误判成注释。语言与扩展名的映射维护在 languages.json,识别逻辑在 src/language/。

其他高频参数,每条一行示例:

tokei . -o yaml # YAML 输出(安装时需开启 yaml feature) tokei . -e "*.log" -e "vendor" # 排除规则,语义和 .gitignore 相同 tokei . -f # 把统计展开到单个文件 tokei . -r lines # 按总行数倒序排列

用-t可以只看某几种语言,例如tokei . -t Rust,Markdown,结果里只保留命中的类型。排除规则不必每次敲命令,写进项目根目录的.tokeignore文件即可,语法和.gitignore相同。想一次性固化配置,把仓库里的 tokei.example.toml 复制成 tokei.toml 放到项目根目录,tokei 会自动读取。

⚠️ 避坑指南

统计结果比预期小。tokei 默认遵守.gitignore和.ignore,被 git 忽略的文件不计入,隐藏文件默认也跳过。数字对不上时,先验证口径:

tokei . --no-ignore

加上--no-ignore后忽略全部忽略规则,两次结果之差就是被忽略的文件量;只想放开 VCS 忽略文件时用--no-ignore-vcs,想计入隐藏文件时加--hidden。

冒出没写过的语言。报表里出现大量 D 代码,但仓库里根本没写 D——多是构建工具链生成的文件,比如 gcc 会产出.d文件。先用tokei . -f定位到具体文件,再排除:

tokei . -e "*.d"

yaml、cbor 报不支持。这两种格式没有默认编译进二进制,遇到报错就带 feature 重装:cargo install tokei --features all。

和替代方案的差别

和 cloc 相比有两个主要差别:Tokei 用 Rust 编写、文件级并行处理,百万行仓库几秒跑完;它还会把单个文件里内嵌的语言(如 .vue 里的 JS 和 CSS)拆开分别计数,cloc 做不到。

下次 code review 或写周报前,先在仓库根目录跑一次tokei .记下基线;要把数字喂给脚本时,换成-o json输出即可。

【免费下载链接】tokeiCount your code, quickly.项目地址: https://gitcode.com/gh_mirrors/to/tokei

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考