使用 Tokei 查看有關代碼的統計信息
近來,GitHub 添加了一個小指標來展示項目的細節,包括項目使用的編程語言。在這之前,對一個新的貢獻者來說,了解他們感興趣的項目的信息是較為困難的。
這個補充很有幫助,但是如果您想知道有關本地存儲庫中項目的相同信息該怎麼辦呢? 這正是 Tokei 派上用場的地方。這是一個當你想和精通不同語言的人想要構建一個項目時可以告訴你項目的代碼數據的特別有用的工具。
探索 Tokei
據其 README,「Tokei 是一個可以展示你的代碼數據的程序。Tokei 將會展示文件的數量,和這些文件中不同語言的代碼、注釋、空白的行數。」它的 v.12.1.0 版本 elaborates 是這樣子介紹的,「Tokei 是一個快速準確的代碼分析 CLI 工具和庫,可以使你輕鬆快速地在你的代碼庫中看到有多少空白、評論和代碼行」。它能夠識別超過 150 種編程語言。
$ ./tokei ~/exa/src ~/Work/wildfly/jaxrs
==================
Language Files Lines Code Comments Blank
Java 46 6135 4324 945 632
XML 23 5211 4839 473 224
------------------------------Rust
Markdown
--------------------------------Total
安裝 Tokei
在 Fedora 上安裝 Tokei:
$ sudo dnf install tokei
用 Rust's Cargo 包管理器安裝:
$ cargo install tokei
使用 Tokei
要列出當前目錄中的代碼統計:
$ tokei
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
Ada 10 2840 1681 560 599
Assembly 4 2508 1509 458 541
GNU Style Assembly 4 2751 1528 748 475
Autoconf 16 2294 1153 756 385
Automake 1 45 34 0 11
BASH 4 1895 1602 133 160
Batch 2 4 4 0 0
C 330 206433 150241 23402 32790
C Header 342 60941 24682 29143 7116
CMake 48 4572 3459 548 565
C# 9 1615 879 506 230
C++ 5 907 599 136 172
Dockerfile 2 16 10 0 6
Fish 1 87 77 5 5
HTML 1 545 544 1 0
JSON 5 8995 8995 0 0
Makefile 10 504 293 72 139
Module-Definition 12 1183 1046 65 72
MSBuild 1 141 140 0 1
Pascal 4 1443 1016 216 211
Perl 2 189 137 16 36
Python 4 1257 949 112 196
Ruby 1 23 18 1 4
Shell 15 1860 1411 222 227
Plain Text 35 29425 0 26369 3056
TOML 64 3180 2302 453 425
Visual Studio Pro| 30 14597 14597 0 0
Visual Studio Sol| 6 655 650 0 5
XML 1 116 95 17 4
YAML 2 81 56 12 13
Zsh 1 59 48 8 3
---------------------------------------------------------------------------- Markdown 55 4677 0 3214 1463
|- C 1 2 2 0 0
|- Rust 19 336 268 20 48
|- TOML 23 61 60 0 1
(Total) 5076 330 3234 1512
---------------------------------------------------------------------------- Rust 496 210966 188958 5348 16660
|- Markdown 249 17676 1551 12502 3623
(Total) 228642 190509 17850 20283
===============================================================================
Total 1523 566804 408713 92521 65570
===============================================================================
$
下面的命令列印出了支持的語言和拓展:
$ tokei -l
ABNF
ABAP
ActionScript
Ada
Agda
Alex
Alloy
Arduino C++
AsciiDoc
ASN.1
ASP
ASP.NET
Assembly
GNU Style Assembly
如果你在兩個文件夾上運行 tokei
並指定其位置作為參數,它將以先入先出的規則列印單個文件的統計數據:
![Running Tokei on two files](/data/attachment/album/202107/06/114317m2uz52zb1foqz5u9.png "Running Tokei on two files")
默認情況下,tokei
僅僅輸出有關語言的數據,但是使用 --files
標記可提供單個文件統計信息:
$ tokei ~/exa/src --files
===========================================================================================
Language Files Lines Code Comments Blanks
===========================================================================================
Rust 54 9339 7070 400 1869
|- Markdown 33 1306 0 1165 141
(Total) 10645 7070 1565 2010
---------------------------------------------------------------------------------------- /home/ssur/exa/src/theme/default_theme.rs 130 107 0 23
/home/ssur/exa/src/output/render/times.rs 30 24 0 6
/home/ssur/exa/src/output/render/users.rs 98 76 0 22
/home/ssur/exa/src/output/render/size.rs 182 141 3 38
/home/ssur/exa/src/output/render/octal.rs 116 88 0 28
/home/ssur/exa/src/output/render/mod.rs 33 20 3 10
/home/ssur/exa/src/output/render/inode.rs 28 20 0 8
/home/ssur/exa/src/output/render/links.rs 87 65 0 22
/home/ssur/exa/src/output/render/groups.rs 123 93 0 30
|ome/ssur/exa/src/output/render/filetype.rs 31 26 0 5
/home/ssur/exa/src/output/render/blocks.rs 57 40 0 17
/home/ssur/exa/src/output/render/git.rs 108 87 0 21
|/ssur/exa/src/output/render/permissions.rs 204 160 3 41
/home/ssur/exa/src/output/grid.rs 67 51 3 13
/home/ssur/exa/src/output/escape.rs 26 18 4 4
/home/ssur/exa/src/theme/lsc.rs 235 158 39 38
/home/ssur/exa/src/options/theme.rs 159 124 6 29
/home/ssur/exa/src/options/file_name.rs 46 39 0 7
/home/ssur/exa/src/options/flags.rs 84 63 6 15
/home/ssur/exa/src/fs/mod.rs 10 8 0 2
/home/ssur/exa/src/fs/feature/mod.rs 33 25 0 8
-- /home/ssur/exa/src/output/time.rs ------------------------------------------------------------ |- Rust 215 170 5 40
|- Markdown 28 0 25 3
總結
我發現使用 tokei
來了解我的代碼統計數據十分容易。另一個使用 tokei
的好處就是它可以用作為一個很容易集成到其他項目的庫。訪問 Tokei 的 Crate.io page 和 Docs.rs 網站來了解其更多用法。如果你想參與其中,你也可以通過它的 GitHub 倉庫 來為 Tokei 作貢獻。
你是否覺得 Tokei 很有用呢?可以在下方的評論區告訴我們。
via: https://opensource.com/article/21/6/tokei
作者:Sudeshna Sur 選題:lujun9972 譯者:zepoch 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive