Linux中國

使用 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 pageDocs.rs 網站來了解其更多用法。如果你想參與其中,你也可以通過它的 GitHub 倉庫 來為 Tokei 作貢獻。

你是否覺得 Tokei 很有用呢?可以在下方的評論區告訴我們。

via: https://opensource.com/article/21/6/tokei

作者:Sudeshna Sur 選題:lujun9972 譯者:zepoch 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國