sublime查看项目代码多少行

---------------------sublime 0.右击要查找的文件; 1.勾选正则( .* ); 3.输入正则表达式 ^[ \t]*[^ \t\n\r]+.*$
0:搜索 \n
是不是感觉有点麻烦?还要运算,这种方法可不是我们想要的!不过别急,还是“在文件中查找”,勾选“正则表达式”选项,我们换正则表达式。要达到刚刚的效果,我们可以很简单地搜索 ^ 或者$ 。正则表达式中, ^ 表示行首, $ 表示行尾,所以这样的查询就能够查出一共有多少个行首或行尾,也就是代码行数。

1:搜索 ^

2:搜索 $
为了更严谨,也为了下文的进一步探索,这里我们搜索 ^.*$ ,表示搜索条件为行首与行尾之间包含任意个任意字符(非换行符)。 . 表示除换行符外的所有字符, .* 表示0到任意多个 . 。

0:搜索 ^.*$
上面的方法可以很迅速地得到代码行数,不过遗憾的是统计结果把空行(仅包含空格和制表符的行)也统计进去了,然而很多时候我们并不想把这些文本也给算进代码量里去,怎么办呢?别急,我们只要对正则表达式做一点点修改。我的思路是,只需要找出一个不是空格或制表符的字符即可,于是我写出了这个正则表达式 ^[ \t]*[^ \t\n\r]+.*$ ,它表示先忽略一行前面的连续空格和制表符,然后寻找是否有一个字符不为空格、制表符、换行符和回车符,如果有则表明这行不为空行。到这里为止,我们可以写出 ^[ \t]*[^ \t\n\r]+ ,这个正则也是可以工作的,不过我习惯把一行写完整。
也许有人会写出类似于 ^\s*\S+.*$ 或者 ^:b*[^:b]+.*$ 这样的正则,不过经我测试,或多或少存在兼容性问题,主要存在两个问题:
1. \s 可能包含 \r ,那么 ^\s* 匹配空行的时候可能会穿透到后面的文本行,直到某一行不为空,这种方法可能无法排除文本内部的空行;
2. :b 这样的写法并不是所有的正则解释器都能识别,不建议使用。Visual Studio 2012也已经抛弃这种写法,改为 [ \t] 。

图0:搜索 ^[ \t]*[^ \t\n\r]+.*$
-----------------------------
在实际项目中,我们或许认为注释行不应成为生产量,应从统计数据中排除出去。似乎这个问题棘手得多。不过别担心,只要善于利用正则表达式,这个问题也能轻松解决。
我们首先要能够对注释行有一个认识。很多程序设计语言中,注释行都会用“/”或者“#”等字符开头。我们假设项目中的注释行都是以“/”或“#”开头的(请读者考虑自己项目的特点自行修改),那么我们要查找的是一行中第一个非空字符不是“/”和“#”的行。跟上一节类似地,我们可以写出^[ \t]*[^ \t\n\r/#]+.*$ 。同样,为了更好的兼容性,这里我避免使用 \s 和 :b 。

图0:搜索 ^[ \t]*?[^ \t\n\r/#]+?.*$ ,此处的 ? 不是必需的
本文旨在介绍一种思路,用最简单的工具实现看似复杂的功能,省力又高效。也许你还有更好更巧的点子,欢迎与我分享。
sublime查看项目代码多少行的更多相关文章
- git 查看项目代码统计命令
git log --author="xxxxxxxx" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; ...
- 查看工程里有多少行java代码
/** * @Classname CustBankcardServiceImpl * @Description 计算项目代码量(行数) * @Date 2019/11/04 14:24 * @Crea ...
- iOS:使用Github托管自己本地的项目代码方式三(命令行方式: Terminal Line)
使用终端命令行将本地项目代码上传到github上进行托管 对于IOS开发者来说,Github的使用是必须要掌握的一种技能,而把项目由本地上传到Github有多种方式 1.开发工具Xcode配置Git, ...
- 【java IO File】统计项目代码总共多少行
统计项目代码总共有多少行 思想: 1.首先将不需要迭代的文件夹,保存在集合中,不满足的就是需要迭代的文件夹 2.将需要进行统计行数的代码文件保存在集合中,满足的就是需要计算文件行数的文件 3.迭代方法 ...
- VS2012 利用正则统计项目代码行数
原文:VS2012 利用正则统计项目代码行数 #开头和/开头或者空行都不计入代码量, 搜索出来以后最后一行就是代码行数了:
- Xcode 统计项目代码行数及常用快捷键
1.统计Xcode项目代码行数 1 打开终端. 2 用ls和cd进到你项目的路径. 3 输入下面的指令: grep -r "\n" classes | wc -l (cl ...
- 查看loadrunner代码行号
运行前报错,如Syntax error on line 133 near ";"那么如何查看代码的行号呢?解决方法:看代码行号时,直接将鼠标在代码的某处单击,在窗体的最下方右侧能看 ...
- iOS 统计项目代码行数
最近去面试 对面的"他" 问我其中一个问题 是 "你的项目代码量是多少?" 当时的确有点蒙圈, 我可以从整个项目打包的角度考虑项目大小,我还真没想过到底我的项目 ...
- 使用PYTHON统计项目代码行数
目录 一 使用PYTHON统计项目代码行数 二 应用实例 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 使用PYTHON统计项目代码行数 遇到一个非常小的需求:统计一个项目里头的各类源代码 ...
随机推荐
- 你真的理解 if __name__ == '__main__' 的作用么?
https://blog.csdn.net/Amberdreams/article/details/88382993
- tf.contrib.legacy_seq2seq.basic_rnn_seq2seq 函数 example 最简单实现
tf.contrib.legacy_seq2seq.basic_rnn_seq2seq 函数 example 最简单实现 函数文档:https://www.tensorflow.org/api_doc ...
- inux上安装mysql
目录 1.先验证是否安装了mysql 2.先下载mysql的repo源 3.安装mysql rpm包,执行命令: 4.安装mysql,执行命令: 5.登录然后重置密码,执行: 6.执行命令赋权,重启m ...
- coding++:高并发解决方案限流技术---漏桶算法限流--demo
1.漏桶算法 漏桶作为计量工具(The Leaky Bucket Algorithm as a Meter)时,可以用于流量整形(Traffic Shaping)和流量控制(TrafficPolici ...
- office2010安装与破解,笔者亲测可用!!!!!!
我们首先需要准备office2010安装包与破相应的破解软件.软件包的获取方式:扫码关注[猿成长],,回复 office2010安装,即可获取,下载解压后文件目录结构如下图所示: 打开安装程序文件夹, ...
- IEnumerable和IQueryable在使用时的区别
最近在调研数据库查询时因使用IEnumerable进行Linq to entity的操作,造成数据库访问缓慢.此文讲述的便是IEnumerable和IQueryable的区别. 微软对IEnumera ...
- RuntimeError: PyTorch was compiled without NumPy support
原因:Pytorch和Numpy版本不匹配 查看自己Pytorch和Numpy版本 (1)执行[pip show torch]和[pip show numpy]查看版本信息(可通过[pip -h]查看 ...
- Polya 定理相关题目
参考知识链接 关于枚举旋转置换: 前两题都是枚举了 n 种旋转, 但这个可以优化到\(O(\sqrt{n})\) (这个其实是基本操作). 考虑到每个循环节的长度都是 n 的因数, 所以可以枚 ...
- [ASP.NET Core MVC] 如何实现运行时动态定义Controller类型?
昨天有个朋友在微信上问我一个问题:他希望通过动态脚本的形式实现对ASP.NET Core MVC应用的扩展,比如在程序运行过程中上传一段C#脚本将其中定义的Controller类型注册到应用中,问我是 ...
- QCustomPlot图形和图例同步方法
QCustomPlot图形和图例同步前言 我现在有几条折线,折线和图例一一对应,不管点击图例或者折线,相关的都高亮 QCustomPlot图形和图例同步方法 // 链接信号槽 m_plot即为QCus ...