Project Icon

tokei

高效多语言代码统计工具

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

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

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号