tokei

tokei

高效多语言代码统计工具

Tokei是一款高效的多语言代码统计工具,支持150多种编程语言。它能快速统计代码行数、注释和空白行,提供多种格式的输出报告。Tokei适用于主流操作系统,既可作为命令行工具使用,也可集成到其他项目中。该工具支持.gitignore文件,并具有灵活的配置选项,为开发者提供准确的代码分析。

Tokei代码统计编程语言开源工具性能优化Github开源项目

Tokei (時計)

Mean Bean CI 需要帮助 代码行数 文档 Chocolatey 下载量 依赖状态 打包状态

Tokei 是一个显示代码统计信息的程序。Tokei 会按语言分组显示文件数量、文件中的总行数、代码行数、注释行数和空白行数。

翻译

示例

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 语言 文件数 总行数 代码 注释 空白行 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BASH 4 49 30 10 9 JSON 1 1332 1332 0 0 Shell 1 49 38 1 10 TOML 2 77 64 4 9 ─────────────────────────────────────────────────────────────────────────────── Markdown 5 1355 0 1074 281 |- JSON 1 41 41 0 0 |- Rust 2 53 42 6 5 |- Shell 1 22 18 0 4 (总计) 1471 101 1080 290 ─────────────────────────────────────────────────────────────────────────────── Rust 19 3416 2840 116 460 |- Markdown 12 351 5 295 51 (总计) 3767 2845 411 511 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 总计 32 6745 4410 1506 829 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

API 文档

目录

特性

  • Tokei 非常快,能够在几秒钟内统计数百万行代码。 查看 11.0.0 版本 了解 Tokei 的速度与其他工具的对比。

  • Tokei 准确,Tokei 可以正确处理多行注释、 嵌套注释,并且不会计算字符串中的注释。提供 准确的代码统计。

  • Tokei 支持的语言范围广泛,支持超过 150 种语言及 其各种扩展名。

  • Tokei 可以输出多种格式(CBORJSONYAML), 使 Tokei 的输出易于存储和重用。这些格式还可以 在 Tokei 中结合先前运行的统计数据与另一组数据。

  • Tokei 可在 MacLinuxWindows 上使用。查看安装 说明了解如何在您的平台上获取 Tokei。

  • Tokei 也是一个,允许您轻松将其与其他 项目集成。

  • Tokei 有彩色和无彩色输出。将环境变量 NO_COLOR 设置为 1, 输出将变为黑白。

安装

包管理器

Unix

# Alpine Linux (3.13 版本起) apk add tokei # Arch Linux pacman -S tokei # Cargo cargo install tokei # Conda conda install -c conda-forge tokei # Fedora sudo dnf install tokei # FreeBSD pkg install tokei # NetBSD pkgin install tokei # Nix/NixOS nix-env -i tokei # OpenSUSE sudo zypper install tokei # Void Linux sudo xbps-install tokei

macOS

# Homebrew brew install tokei # MacPorts sudo port selfupdate sudo port install tokei

Windows

# Winget winget install XAMPPRocky.tokei # Scoop scoop install tokei

手动安装

下载

您可以在 发布部分

构建

你也可以从源代码构建和安装(需要最新的稳定版 Rust 编译器)。

cargo install --git https://github.com/XAMPPRocky/tokei.git tokei

配置

Tokei 有一个配置文件,允许你更改默认行为。该文件可以命名为 tokei.toml.tokeirc。目前 Tokei 会在三个不同的位置查找此文件:当前目录、你的主目录和配置目录。

如何使用 Tokei

基本用法

这是使用 Tokei 的基本方法。它将报告 ./foo 及其所有子文件夹中的代码。

$ tokei ./foo

多个文件夹

要让 Tokei 在同一次调用中报告多个文件夹,只需添加逗号或空格,然后跟上另一个路径。

$ tokei ./foo ./bar ./baz
$ tokei ./foo, ./bar, ./baz

排除文件夹

Tokei 会遵守所有 .gitignore.ignore 文件,你可以使用 --exclude 选项排除任何额外的文件。--exclude 标志与 .gitignore 具有相同的语义。

$ tokei ./foo --exclude *.rs

要排除的路径也可以列在 .tokeignore 文件中,使用与 .gitignore 文件相同的语法

排序输出

默认情况下,Tokei 按语言名称字母顺序排序,但使用 --sort 选项,Tokei 也可以按任何列进行排序。

blanks, code, comments, lines

$ tokei ./foo --sort code

输出文件统计信息

默认情况下,Tokei 只输出语言的总计,使用 --files 标志,Tokei 也可以输出单个文件的统计信息。

$ tokei ./foo --files

输出不同格式

Tokei 通常输出为适合终端的易读格式。使用 --output 选项还可以输出为其他格式,这些格式更适合将数据导入其他程序。

注意: 此版本的 Tokei 编译时未包含任何序列化格式,要启用序列化,请使用 features 标志重新安装 Tokei。

ALL: cargo install tokei --features all CBOR: cargo install tokei --features cbor YAML: cargo install tokei --features yaml

当前支持的格式

  • JSON --output json
  • YAML --output yaml
  • CBOR --output cbor
$ tokei ./foo --output json

读取存储的格式

Tokei 还可以将前一次结果的输出格式添加到当前运行中。Tokei 可以接受文件路径、作为选项值传入的格式,或从标准输入读取。

$ tokei ./foo --input ./stats.json

选项

用法:
    tokei [标志] [选项] [--] [输入]...

标志:
    -f, --files               将打印单个文件的统计信息。
    -h, --help                打印帮助信息
        --hidden              计算隐藏文件。
    -l, --languages           打印支持的语言及其扩展名。
        --no-ignore           不遵守忽略文件(.gitignore, .ignore 等)。这意味着 --no-ignore-parent,
                              --no-ignore-dot 和 --no-ignore-vcs。
        --no-ignore-dot       不遵守 .ignore 和 .tokeignore 文件,包括父目录中的文件。
        --no-ignore-parent    不遵守父目录中的忽略文件(.gitignore, .ignore 等)。
        --no-ignore-vcs       不遵守 VCS 忽略文件(.gitignore, .hgignore 等),包括父目录中的文件。
    -V, --version             打印版本信息
    -v, --verbose             设置日志输出级别:
                                          1: 显示未知文件扩展名,
                                          2: 保留用于未来调试,
                                          3: 启用文件级跟踪。不建议在多个文件上使用

选项:
    -c, --columns <columns>       设置输出的严格列宽,仅适用于终端输出。
    -e, --exclude <exclude>...    忽略所有匹配模式的文件和目录。
    -i, --input <file_input>      从之前的 Tokei 运行中获取统计信息。可以给定文件路径,或 "stdin" 从标准输入读取。
    -o, --output <output>         以特定格式输出 Tokei。编译时需要额外功能以支持更多格式。[可能的值:cbor, json, yaml]
    -s, --sort <sort>             根据列对语言进行排序 [可能的值:files, lines, blanks, code, comments]
    -t, --type <types>            按语言类型过滤输出,用逗号分隔。例如 -t=Rust,Markdown

参数:
    <input>...    要计算的文件或目录的路径。

徽章

Tokei 支持徽章。例如

[![](https://tokei.rs/b1/github/XAMPPRocky/tokei)](https://github.com/XAMPPRocky/tokei)。

Tokei 的 URL 方案如下。

https://tokei.rs/b1/{host: values: github|gitlab}/{仓库所有者,如:XAMPPRocky}/{仓库名称,如:tokei}

默认情况下,徽章将显示仓库的代码行数(LoC),你也可以通过使用 ?category= 查询字符串指定显示不同的类别。可以是 codeblanksfileslinescomments, 例如显示总行数:

[![](https://tokei.rs/b1/github/XAMPPRocky/tokei?category=lines)](https://github.com/XAMPPRocky/tokei)。

托管在 tokei.rs 上的服务器代码位于 XAMPPRocky/tokei_rs

Docker 版本

Tokei 可在基于 alpine 的小型 Docker 镜像中使用,可通过 earthly 构建:

earthly +docker

构建完成后,可以使用以下命令运行镜像:

docker run --rm -v /path/to/analyze:/src tokei .

或者,要简单地分析当前文件夹(Linux):

docker run --rm -v $(pwd):/src tokei .

支持的语言

如果你想向 Tokei 添加一种语言,欢迎提交拉取请求 请求。语言定义在 languages.json 中,你可以在我们的 CONTRIBUTING.md 中了解如何添加和测试你的语言。

[此处省略长列表]

常见问题

Tokei 说我有很多 D 代码,但我知道没有 D 代码!

这可能是因为 gcc 生成了 .d 文件。在 D 语言的开发者决定使用不同的文件扩展名之前,你可以使用 -e --exclude 标志来排除 .d 文件,如下所示:

$ tokei . -e *.d

官方源

此仓库的官方源托管在 GitHub 上。如果你有 GitHub 账号,请在那里提交问题和拉取请求。

相关工具

  • tokei-pie:将 tokei 的输出渲染为交互式旭日图。

版权和许可

(C) 2015 年 XAMPPRocky 和贡献者版权所有

完整的贡献者列表请参见贡献者图表

Tokei 在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。

更多信息请参见 LICENCE-APACHELICENCE-MIT

编辑推荐精选

商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI助手AI工具AI写作工具AI辅助写作蛙蛙写作学术助手办公助手营销助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

聊天机器人AI助手热门AI工具AI对话
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

热门AI工具AI办公办公工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图
下拉加载更多