Tokei (時計)
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 可以输出多种格式(CBOR、JSON、YAML), 使 Tokei 的输出易于存储和重用。这些格式还可以 在 Tokei 中结合先前运行的统计数据与另一组数据。
-
Tokei 可在 Mac、Linux 和 Windows 上使用。查看安装 说明了解如何在您的平台上获取 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>... 要计算的文件或目录的路径。
徽章
[![](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=
查询字符串指定显示不同的类别。可以是 code
、blanks
、files
、lines
、comments
,
例如显示总行数:
[![](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-APACHE 和 LICENCE-MIT。