64 个稳定版本 (12 个主要版本)
新 13.0.0-alpha.5 | 2024 年 8 月 23 日 |
---|---|
13.0.0-alpha.1 | 2024 年 3 月 4 日 |
13.0.0-alpha.0 | 2023 年 3 月 27 日 |
12.1.2 | 2021 年 1 月 12 日 |
1.2.1 | 2015 年 10 月 27 日 |
#3 in 可视化
每月下载量 10,751
用于 14 个 crate(13 个直接使用)
180KB
4K SLoC
时计 (时钟)
时计是一个显示代码统计信息的程序。时计将显示文件数量、文件中的总行数以及按语言分组的代码、注释和空白。
翻译
示例
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Language Files Lines Code Comments Blanks
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
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
(Total) 1471 101 1080 290
───────────────────────────────────────────────────────────────────────────────
Rust 19 3416 2840 116 460
|- Markdown 12 351 5 295 51
(Total) 3767 2845 411 511
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Total 32 6745 4410 1506 829
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
API 文档
目录
功能
-
时计非常快,能够在几秒钟内统计数百万行代码。查看 11.0.0 版本的发布 以了解时计的速度与其他工具相比如何。
-
时计非常准确,正确处理多行注释、嵌套注释,并且不会统计字符串中的注释。提供准确的代码统计信息。
-
时计支持广泛的编程语言,支持超过 150 种语言及其各种扩展。
-
时计可以输出多种格式(CBOR、JSON、YAML),允许时计的输出易于存储和重用。这些也可以与以前的运行统计信息结合使用。
-
时计可在 Mac、Linux 和 Windows 上使用。查看 安装说明 了解如何在您的平台上获取时计。
-
时计也是一个 库,允许您轻松将其与其他项目集成。
-
时计提供带颜色和不带颜色的版本。将环境变量 NO_COLOR 设置为 1,它将以黑白显示。
安装
包管理器
Unix
# Alpine Linux (since 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 的基本方法。它将报告 ./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 还可以按任何列排序。
空格,代码,注释,行
$ tokei ./foo --sort code
输出文件统计信息
默认情况下,tokei 只输出语言的总量,但使用 --files
标志,tokei 还可以输出单个文件的统计信息。
$ tokei ./foo --files
输出到不同的格式
tokei 通常以设计用于终端的易于阅读的格式输出。还有使用 --output
选项的多种其他格式,这些格式对于将数据带入另一个程序更有用。
注意: 此版本的 tokei 是在没有序列化格式的情况下编译的,要启用序列化,请使用功能标志重新安装 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 可以接受文件路径、作为选项值的格式或从 stdin。
$ tokei ./foo --input ./stats.json
选项
USAGE:
tokei [FLAGS] [OPTIONS] [--] [input]...
FLAGS:
-f, --files Will print out statistics on individual files.
-h, --help Prints help information
--hidden Count hidden files.
-l, --languages Prints out supported languages and their extensions.
--no-ignore Don't respect ignore files (.gitignore, .ignore, etc.). This implies --no-ignore-parent,
--no-ignore-dot, and --no-ignore-vcs.
--no-ignore-dot Don't respect .ignore and .tokeignore files, including those in parent directories.
--no-ignore-parent Don't respect ignore files (.gitignore, .ignore, etc.) in parent directories.
--no-ignore-vcs Don't respect VCS ignore files (.gitignore, .hgignore, etc.), including those in parent
directories.
-V, --version Prints version information
-v, --verbose Set log output level:
1: to show unknown file extensions,
2: reserved for future debugging,
3: enable file level trace. Not recommended on multiple files
OPTIONS:
-c, --columns <columns> Sets a strict column width of the output, only available for terminal output.
-e, --exclude <exclude>... Ignore all files & directories matching the pattern.
-i, --input <file_input> Gives statistics from a previous tokei run. Can be given a file path, or "stdin" to
read from stdin.
-o, --output <output> Outputs Tokei in a specific format. Compile with additional features for more format
support. [possible values: cbor, json, yaml]
-s, --sort <sort> Sort languages based on column [possible values: files, lines, blanks, code, comments]
-t, --type <types> Filters output by language type, separated by a comma. i.e. -t=Rust,Markdown
ARGS:
<input>... The path(s) to the file or directory to be counted.
徽章
[![](https://tokei.rs/b1/github/XAMPPRocky/tokei)](https://github.com/XAMPPRocky/tokei).
Tokei 的 URL 方案如下。
https://tokei.rs/b1/{host: values: github|gitlab}/{Repo Owner eg: XAMPPRocky}/{Repo name eg: 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,请随时提交pull request。语言定义在languages.json
中,您可以在我们的CONTRIBUTING.md中找到如何添加和测试语言的说明。
Abap
ActionScript
Ada
Agda
Alex
Alloy
Asn1
Asp
AspNet
Assembly
AssemblyGAS
ATS
Autoconf
AutoHotKey
Automake
AWK
Bash
Batch
Bazel
Bean
Bicep
Bitbake
BrightScript
C
Cabal
Cassius
Ceylon
CHeader
Cil
Clojure
ClojureC
ClojureScript
CMake
Cobol
CoffeeScript
Cogent
ColdFusion
ColdFusionScript
Coq
Cpp
CppHeader
Crystal
CSharp
CShell
Css
Cuda
CUE
Cython
D
D2
DAML
Dart
DeviceTree
Dhall
Dockerfile
DotNetResource
DreamMaker
Dust
Ebuild
EdgeDB
Edn
Elisp
Elixir
Elm
Elvish
EmacsDevEnv
Emojicode
Erlang
Factor
FEN
Fish
FlatBuffers
ForgeConfig
Forth
FortranLegacy
FortranModern
FreeMarker
FSharp
Fstar
GDB
GdScript
GdShader
Gherkin
Gleam
Glsl
Go
Graphql
Groovy
Gwion
Hamlet
Handlebars
Happy
Hare
Haskell
Haxe
Hcl
Hex
hledger
Hlsl
HolyC
Html
Hy
Idris
Ini
IntelHex
Isabelle
Jai
Janet
Java
JavaScript
Jq
Json
Jsx
Julia
Julius
KakouneScript
Kotlin
Lean
Less
Lingua Franca
LinkerScript
Liquid
Lisp
LLVM
Logtalk
Lua
Lucius
Madlang
Max
Makefile
Markdown
Mdx
Meson
Mint
Mlatu
ModuleDef
MonkeyC
MoonScript
MsBuild
Mustache
Nim
Nix
NotQuitePerl
NuGetConfig
Nushell
ObjectiveC
ObjectiveCpp
OCaml
Odin
OpenSCAD
OpenQASM
Org
Oz
Pascal
Perl
Perl6
Pest
Php
Po
Poke
Polly
Pony
PostCss
PowerShell
Processing
Prolog
Protobuf
PRQL
PSL
PureScript
Python
Qcl
Qml
R
Racket
Rakefile
Razor
Renpy
ReStructuredText
RON
RPMSpecfile
Ruby
RubyHtml
Rust
Sass
Scala
Scheme
Scons
Sh
ShaderLab
Slang
Sml
Solidity
SpecmanE
Spice
Sql
SRecode
Stata
Stratego
Svelte
Svg
Swift
Swig
SystemVerilog
Tact
Tcl
Tex
Text
Thrift
Toml
Tsx
Twig
TypeScript
UMPL
UnrealDeveloperMarkdown
UnrealPlugin
UnrealProject
UnrealScript
UnrealShader
UnrealShaderHeader
UrWeb
UrWebProject
Vala
VB6
VBScript
Velocity
Verilog
VerilogArgsFile
Vhdl
VimScript
VisualBasic
VisualStudioProject
VisualStudioSolution
Vue
WebAssembly
Wolfram
Xaml
XcodeConfig
Xml
XSL
Xtend
Yaml
ZenCode
Zig
ZoKrates
Zsh
常见问题
tokei说我有很多D代码,但我知道没有D代码!
这可能是由于gcc
生成了.d
文件。直到D语言的人决定使用不同的文件扩展名之前,您始终可以使用-e --exclude
标志来排除.d
文件,如下所示
$ tokei . -e *.d
规范源
本仓库的官方源代码托管在GitHub上。如果您有GitHub账户,请在那里提交问题和pull request。
相关工具
- tokei-pie:将tokei的输出渲染为交互式的sunburst图表。
版权和许可
(C) 版权所有 2015,由XAMPPRocky和贡献者
查看贡献者图表以获取贡献者完整列表。
Tokei是在MIT许可和Apache许可(版本2.0)的条款下分发的。
有关更多信息,请参阅LICENCE-APACHE、LICENCE-MIT。
依赖项
~14–26MB
~459K SLoC