Tokei是一个按语言统计代码行数等统计信息的工具。其实这些信息还是非常有用的,首先程序猿可以用它来估计别人的实力或者观察自己实力成长的速度(神马,行数论英雄么?)。其次,管理人员可以用它来估计工程的进度和预算(据说一个程序猿一天写不出100行代码?)。最后,其实在看新代码的时候先看下这些数据,也有助于对代码的理解(说不定最长的文件就是核心逻辑的所在处呢?)。所以,大家以后没事多tokei一下呀。

好了不废话,首先安装的话直接用cargo就好了:

$ cargo install tokei

我们下面以cpython的源码为例,看下tokei具体如何使用

直接使用tokei+目录名就可以得到关于目录下按语言分类的文件数、代码行数(包括代码和注释)和空行数。

$ tokei cpython/------------------------------------------------------------------------------- Language            Files        Lines         Code     Comments       Blanks------------------------------------------------------------------------------- Assembly                6         1978         1723           26          229 Autoconf               13         4493         2708          939          846 Batch                  32         2120         1762            7          351 C                     317       421274       320386        48459        52429 C Header              384       181963       156295        10240        15428 C Shell                 1           25           11            5            9 C++                     5         4223         3241          256          726 CSS                     1            6            0            4            2 D                       5           83           74            1            8 Fish                    1           64           38           13           13 HTML                   10         2045         1926           11          108 INI                     1          171          102           27           42 JavaScript              2          209          177           14           18 JSON                    6           68           68            0            0 Lisp                    1          692          502           81          109 Makefile                4          339          242           40           57 Markdown                2           47           47            0            0 Module-Definition       8         1400         1363           14           23 MSBuild                10          995          824           80           91 Objective-C             7          794          635           61           98 PowerShell              6          600          345          171           84 Prolog                  1           24           24            0            0 Python               1943       814052       636398        58030       119624 ReStructuredText      645       322625       322625            0            0 Shell                   5          797          487          191          119 SVG                     8            8            8            0            0 Plain Text            149        89499        89499            0            0 TOML                    1            4            4            0            0 VBScript                1            1            0            1            0 Visual Studio Pro|     48         6276         6223            8           45 Visual Studio Sol|      2         1472         1471            0            1 XSL                     1            5            5            0            0 XML                    58          417          338            7           72------------------------------------------------------------------------------- Total                3684      1858769      1549551       118686       190532-------------------------------------------------------------------------------

使用-s可以针对某个列排序,比如如果我们要针对代码行数排序

$ tokei cpython/ -s code------------------------------------------------------------------------------- Language            Files        Lines         Code     Comments       Blanks------------------------------------------------------------------------------- Python               1943       814052       636398        58030       119624 ReStructuredText      645       322625       322625            0            0 C                     317       421274       320386        48459        52429 C Header              384       181963       156295        10240        15428 Plain Text            149        89499        89499            0            0 Visual Studio Pro|     48         6276         6223            8           45 C++                     5         4223         3241          256          726 Autoconf               13         4493         2708          939          846 HTML                   10         2045         1926           11          108 Batch                  32         2120         1762            7          351 Assembly                6         1978         1723           26          229 Visual Studio Sol|      2         1472         1471            0            1 Module-Definition       8         1400         1363           14           23 MSBuild                10          995          824           80           91 Objective-C             7          794          635           61           98 Lisp                    1          692          502           81          109 Shell                   5          797          487          191          119 PowerShell              6          600          345          171           84 XML                    58          417          338            7           72 Makefile                4          339          242           40           57 JavaScript              2          209          177           14           18 INI                     1          171          102           27           42 D                       5           83           74            1            8 JSON                    6           68           68            0            0 Markdown                2           47           47            0            0 Fish                    1           64           38           13           13 Prolog                  1           24           24            0            0 C Shell                 1           25           11            5            9 SVG                     8            8            8            0            0 XSL                     1            5            5            0            0 TOML                    1            4            4            0            0 CSS                     1            6            0            4            2 VBScript                1            1            0            1            0------------------------------------------------------------------------------- Total                3684      1858769      1549551       118686       190532-------------------------------------------------------------------------------

使用-t可以过选择想要的语言

$ tokei cpython/ -t=Python------------------------------------------------------------------------------- Language            Files        Lines         Code     Comments       Blanks------------------------------------------------------------------------------- Python               1943       814052       636398        58030       119624------------------------------------------------------------------------------- Total                1943       814052       636398        58030       119624-------------------------------------------------------------------------------

也可以同时选择多个语言,使用逗号分开

$ tokei cpython/ -t=Python,C++------------------------------------------------------------------------------- Language            Files        Lines         Code     Comments       Blanks------------------------------------------------------------------------------- C++                     5         4223         3241          256          726 Python               1943       814052       636398        58030       119624------------------------------------------------------------------------------- Total                1948       818275       639639        58286       120350-------------------------------------------------------------------------------

使用-e可以过滤掉不想要进入统计的文件名类型,比如说我们过滤掉所有拓展名是c的文件

$ tokei cpython/ -e *.c------------------------------------------------------------------------------- Language            Files        Lines         Code     Comments       Blanks------------------------------------------------------------------------------- Assembly                6         1978         1723           26          229 Autoconf               13         4493         2708          939          846 Batch                  32         2120         1762            7          351 C Header              384       181963       156295        10240        15428 C Shell                 1           25           11            5            9 C++                     5         4223         3241          256          726 CSS                     1            6            0            4            2 D                       5           83           74            1            8 Fish                    1           64           38           13           13 HTML                   10         2045         1926           11          108 INI                     1          171          102           27           42 JavaScript              2          209          177           14           18 JSON                    6           68           68            0            0 Lisp                    1          692          502           81          109 Makefile                4          339          242           40           57 Markdown                2           47           47            0            0 Module-Definition       8         1400         1363           14           23 MSBuild                10          995          824           80           91 Objective-C             7          794          635           61           98 PowerShell              6          600          345          171           84 Prolog                  1           24           24            0            0 Python               1943       814052       636398        58030       119624 ReStructuredText      645       322625       322625            0            0 Shell                   5          797          487          191          119 SVG                     8            8            8            0            0 Plain Text            149        89499        89499            0            0 TOML                    1            4            4            0            0 VBScript                1            1            0            1            0 Visual Studio Pro|     48         6276         6223            8           45 Visual Studio Sol|      2         1472         1471            0            1 XSL                     1            5            5            0            0 XML                    58          417          338            7           72------------------------------------------------------------------------------- Total                3367      1437495      1229165        70227       138103-------------------------------------------------------------------------------

也可以使用--files使得统计按照文件显示而不是合并显示。因为cpython的文件太多,我们选取一个子目录看看:

$ tokei cpython/Parser/ --files------------------------------------------------------------------------------------------------------------------------- Language                                                      Files        Lines         Code     Comments       Blanks------------------------------------------------------------------------------------------------------------------------- C                                                                 9         3860         3158          347          355------------------------------------------------------------------------------------------------------------------------- cpython/Parser/listnode.c                                                     70           60            2            8 cpython/Parser/token.c                                                       243          233            3            7 cpython/Parser/myreadline.c                                                  380          295           37           48 cpython/Parser/parsetok.c                                                    495          414           25           56 cpython/Parser/grammar1.c                                                     47           38            3            6 cpython/Parser/parser.c                                                      462          336           61           65 cpython/Parser/acceler.c                                                     123          105           10            8 cpython/Parser/tokenizer.c                                                  1852         1550          163          139 cpython/Parser/node.c                                                        188          127           43           18------------------------------------------------------------------------------------------------------------------------- C Header                                                          2          137          101           15           21------------------------------------------------------------------------------------------------------------------------- cpython/Parser/parser.h                                                       49           37            2           10 cpython/Parser/tokenizer.h                                                    88           64           13           11------------------------------------------------------------------------------------------------------------------------- Python                                                           10         2898         2369          111          418------------------------------------------------------------------------------------------------------------------------- cpython/Parser/asdl.py                                                       376          281           41           54 cpython/Parser/asdl_c.py                                                    1417         1224           17          176 cpython/Parser/pgen/automata.py                                              371          280           20           71 cpython/Parser/pgen/token.py                                                  38           22            4           12 cpython/Parser/pgen/pgen.py                                                  305          255            8           42 cpython/Parser/pgen/metaparser.py                                            152          115           21           16 cpython/Parser/pgen/__init__.py                                                0            0            0            0 cpython/Parser/pgen/grammar.py                                               147          124            0           23 cpython/Parser/pgen/keywordgen.py                                             59           42            0           17 cpython/Parser/pgen/__main__.py                                               33           26            0            7------------------------------------------------------------------------------------------------------------------------- Total                                                            21         6895         5628          473          794-------------------------------------------------------------------------------------------------------------------------

最后也可以把刚才这些组合起来,比如

$ tokei cpython/Parser/ --files -t=Python -s code -e __init__.py------------------------------------------------------------------------------------------------------------------------- Language                                                      Files        Lines         Code     Comments       Blanks------------------------------------------------------------------------------------------------------------------------- Python                                                            9         2898         2369          111          418------------------------------------------------------------------------------------------------------------------------- cpython/Parser/asdl_c.py                                                    1417         1224           17          176 cpython/Parser/asdl.py                                                       376          281           41           54 cpython/Parser/pgen/automata.py                                              371          280           20           71 cpython/Parser/pgen/pgen.py                                                  305          255            8           42 cpython/Parser/pgen/grammar.py                                               147          124            0           23 cpython/Parser/pgen/metaparser.py                                            152          115           21           16 cpython/Parser/pgen/keywordgen.py                                             59           42            0           17 cpython/Parser/pgen/__main__.py                                               33           26            0            7 cpython/Parser/pgen/token.py                                                  38           22            4           12------------------------------------------------------------------------------------------------------------------------- Total                                                             9         2898         2369          111          418-------------------------------------------------------------------------------------------------------------------------

最后,其实tokei是个日语词,意思是钟表,也许作者是在暗示这款工具运行地速度飞快吧。实际上在github中有和其他类似工具(Go的scc以及同样用Rust写的loc)的比较。但比较的版本有些老了。

我们就自己跑一下看看统计当前Rust官方代码库的成绩(CPU时间)吧:

tokei 1.5±0.1s

scc 2.3±1.0s

loc 3.8±0.4s

tokei是不是很优秀?不过也别太当真啦,反正都是一眨眼的事情。没事多tokei一下你的代码吧~

webstorm代码行数统计_【Rust每周一库】Tokei 统计代码行数等信息的实用工具相关推荐

  1. java 方法数统计_利用Java简单实现一个代码行数统计器方法实例

    前言 哈喽,我是小黑, 最近学了java的输入输出流后一直心痒痒,总想找一点事情来做,所以用java代码来实现了一下统计代码的所有行数,看一下我上大学以来到底打了多少行. 先附上实现代码吧! pack ...

  2. python正则匹配统计_用Python正则表达式搜索统计命令行管道中的所有数字

    由于最近经常要对庞大的Android代码进行统计,于是写了一个Python脚本,可以把命令行中输出的所有管道数据中的数字找出来,并进行累加等操作,使用起来非常快捷高效. 例如,我希望统计Android ...

  3. linux 统计_聊聊 Linux 的内存统计

    写在前面 本文主要分析 Linux 系统内存统计的一些指标以及进程角度内存使用监控的一些方法. 开始阅读这篇文章前,请先简单阅读下面的几篇文章. <进程眼中的线性地址空间> <线程眼 ...

  4. el-table 行背景颜色_使用HTML添加表格4(行颜色与表格嵌套)——零基础自学网页制作

    行颜色设置的简便方法 昨天我们在<使用HTML添加表格3(间距与颜色)--零基础自学网页制作>(目录在结尾)中学习了设置单元格以及其中内容的空间间距和背景颜色. 其中添加列向单元格背景颜色 ...

  5. jieba库词频统计_运用jieba库进行词频统计

    Python第三方库jieba(中文分词) 一.概述 jieba是优秀的中文分词第三方库 - 中文文本需要通过分词获得单个的词语 - jieba是优秀的中文分词第三方库,需要额外安装 - jieba库 ...

  6. Java代码制作ie浏览器_[Java教程]判断IE浏览器代码实例

    [Java教程]判断IE浏览器代码实例 0 2015-08-12 01:00:19 判断IE浏览器代码实例: 由于当下浏览器类型众多,并且对同一段代码的解读有时候各有不同,所以要根据浏览器的类型来执行 ...

  7. sklearn库安装_没有依赖库也能跑机器学习模型!推荐一个强大工具m2cgen

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI m2cgen(Model 2 Code Generator)是一个轻量级代码生成器,它可以将训练好的机器学习模型转换成无需依赖库的本地代码. ...

  8. mysql影响行数解析_对PHP函数mysqli_affected_rows的作用行数返回值的分析

    这篇文章主要介绍了PHP中mysqli_affected_rows作用行数返回值,实例分析了普通模式与oop模式的用法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例分析了PHP中mysqli ...

  9. python目标识别代码_利用ImageAI库只需几行python代码超简实现目标检测

    什么是目标检测 目标检测关注图像中特定的物体目标,需要同时解决解决定位(localization) + 识别(Recognition).相比分类,检测给出的是对图片前景和背景的理解,我们需要从背景中分 ...

最新文章

  1. SQL-语句实现九九乘法表
  2. java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12问题
  3. IIS,apche,nginx,301域名重定向设置
  4. spd耗材管理流程图_国药器械山东公司助力济宁医学院附属医院SPD项目成功启动...
  5. Flex 给PopUpButton 设置皮肤
  6. 服务器和客户端Socket单向通信例子
  7. 利尔达NB-IOT模块对接移动onenet平台步骤
  8. 安装恩智浦IDE与配置SDK和烧录程序
  9. GCC和C99标准中inline
  10. 怎样设定计算机屏幕锁定时间,电脑屏幕锁屏时间怎么设置
  11. 如何用CMD查看电脑详细配置
  12. import * as用法
  13. 饭后的不良习惯,看看你中了几招?
  14. 【COCOS2DX-游戏开发之七】添加启动数字输入法的功能
  15. python使用spark_如何在Python中编写简单代码,并且速度超越Spark?
  16. 玩转华为数据中心交换机系列 | 配置STP功能示例
  17. 排序(堆排序,快速排序,归并排序)
  18. 图形聚类算法:MCL
  19. 华硕h410csm怎么开启_昂达h410主板装win7系统及bios设置教程(首发支持10代cpu)
  20. echarts 多个水球图简单移动动画demo

热门文章

  1. php5.3中ZendGuardLoader与wincache冲突问题的解决方法
  2. Mysql+innodb数据存储逻辑
  3. 推荐一个十分好看的开源博客系统
  4. SQL Server 个人手册
  5. c# 连续抓取页面内容
  6. Linux加载DTS设备节点的过程(以高通8974平台为例)
  7. 2018年,JavaScript都经历了什么?
  8. java数据结构读书笔记--引论
  9. Java8 Lamdba表达式 002
  10. Spring MVC 环境搭建(一)