Google C++命名规范 : https://google.github.io/styleguide/cppguide.html#General_Naming_Rules
1.文件名 使用小写字母和下划线组合。头文件以.h结尾,定义文件用.cc结尾。例如:my_useful_class.cc 2.类型名 使用大写字母开头,多个单词组合时每个单词的首字母大写。例如:UrlTableErrors. 3.变量名 普通变量:小写字母和下划线的组合。例如:table_name 类数据成员变量:小写字母和下划线组合,最后加一个下划线。例如:table_name_ 结构体变量:与普通变量类似,不需要在最后加一个下划线。 全局变量:可以在变量前加一个标志,g_。例如:g_error_num;
:set wm=10 设置与右边界的距离。右边界为10个字符。 o 移到一行的开头 s 移到一行的结尾 w 移到下一个单词的 b 退后一个单词 S 更改一行文本 ~更改大小写 d 删除 dw 删除单词 dd 删除一行 p 放置命令 yy拖拽 . 重复动作 u 撤销 J 合并两行 编辑命令 文本对象 更改 删除 复制 一个单词 cw dw yw 两个单词 2cW/c2W 2dW/d2W 2yW/y2W 后退三个单词 3cb 3db 3yb 一整行 cc dd yy 到一行的结尾 C D y$ 到一行的
最重要的一致性规则是命名管理. 命名风格快速获知名字代表是什么东东: 类型? 变量? 函数? 常量? 宏 … ? 甚至不需要去查找类型声明. 我们大脑中的模式匹配引擎可以非常可靠的处理这些命名规则.
正则简单使用说明 怎么使用正则 1判断一个String是否符合一个正则 String content = 一个字符串; String pattern = 正则表达式; boolean isMatch = Pattern.matches(pattern, content); 2用正则进行查找 Pattern pattern = Pattern.compile(正则表达式); Matcher matcher = pattern.matcher("文字内容"); while (matcher.find())
例子: 建立一个测试目录,在测试目录下建立一个名为sub的子目录 $ mkdir test $ cd test $ mkdir sub 在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件 建立一个简单的Makefile src=$(wildcard *.c ./sub/*.c) dir=$(notdir $(src)) obj=$(patsubst %.c,%.o,$(dir) ) all: @echo $(src) @echo $(dir) @echo $(obj) @echo “end” 执行结果分析: 第一行输出: a.c b.c ./sub/sa.c ./sub/sb.c wildcard把 指定目录 ./ 和 ./sub/ 下的所有后缀是c的文件全部展开。 第二行输出: a.c b.c sa.c sb.c notdir把展开的文件去除掉路径信息 第三行输出: a.o b.o sa.o sb.o 在$(patsubst %.c,%.o,$(dir) )中,patsubst把$(dir)中的变量符合后缀是.c的全部替换成.o, 任何输出。 或者可以使用 obj=$(dir:%.c=%.o) 效果也是一样的。 这里用到makefile里的替换引用规则,即用您指定的变量替换另一个变量。 它的标准格式是 $(var:a=b) 或 ${var:a=b} 它的含义是把变量var中的每一个值结尾用b替换掉a 今天在研究makefile时在网上看到一篇文章,介绍了使用函数wildcard得到指定目录下所有的C语言源程序文件名的方法,这下好了,不用手工一个一个指定需要编译的.c文件了,方法如下: SRC = $(wildcard *.c) 等于指定编译当前目录下所有.c文件,如果还有子目录,比如子目录为inc,则再增加一个wildcard函数,象这样: SRC = $(wildcard *.c) $(wildcard inc/*.c) 也可以指定汇编源程序: ASRC = $(wildcard *.S) 这样一来,makefile模板可修改的基本就是AVR名称和时钟频率了,其它的一般不用动了。
Vim基础操作 说明 C-字母 = Ctrl + 字母 char = 任意字符 开始编辑 insert 按键 功能 说明 i(I) insert 当前位置插入(当前行前) a(A) append 当前字符后面插入(当前行后) o(O) open a line below 当前行的下面(当前行上面) 模式 模式 功能 说明 普通模式(ESC) normal 操作和移动 插入模式(i,a,o) insert 编辑 命令模式(:) command 执行命令 可视模式(v,V,C-v) visual 选择 可视
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
最优秀的自由软件,,高度可定制的文本编辑器之一,俗话说:上到用vim改sh、python脚本,下到用vim改txt文本。只要会玩,定位关键词、跳行、搜大小.....【简单理解类似于Windows上的文本和notec++软件】
定义映射模式时,我们可以使用nmap、imap、vmap来定义映射仅在normal、insert、visual模式有效
//从下标为6的位置开始截取,截取到下标为8的位置,但是不包括下标为8的字符[6,8)
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
vim中Nyy可以复制光标后的N行。有时我们不容易得出行数,这时可以用做标记的方法来制定复制范围:
在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。 Vim强大的编辑能来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令dd删除当前行,但是第一个”d”的后面可以跟另外的移动命令来代替第二个d,比如用移动到下一行的”j”键就可以删除当前行和下一行。另外还可以指定命令重复次数,2dd(重复dd两次),和dj的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效地进行文本编辑。 在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。
make 是 linux 系统的实用程序。它用于管理对于大型程序的自动编译任务,自动决定程序某一部分需要重新编译,并发出编译指令。虽然,我们最常见于 C 语言程序的编译。但是,make 不限于某一特定语言,凡是可以通过 shell 命令来运行编译器的语言都可以使用 make 。除此之外,你甚至可以用 make 描述任何构建任务,这些任务中,文件需要在其依赖的文件发生变动后自动更新。
VIM是一款功能强大、高度可定制的文本编辑工具。可以使用命令apt install vim(Ubuntu环境,在安装有apt工具的情况下)安装,相比起vi来说,vim做的一些变化
曾经我也天真的觉得如今很多软件都可以充当文本编辑器,像vim上手这么麻烦的可以替代
最近,在 GitHub 上便出现了一个叫做用聪明的方式学习 Vim 的项目,上线短短几天时间,便已经斩获 2200 星。
和C/C++、Java等语言一样,python在命名上也有一套约定俗成的规则,符合规范的命名可以让程序的可读性大大增加,从而使得代码的逻辑性增强,易于自己和其他协作者在以后的拓展中理解代码的意义,从而提高编写代码的效率。
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
最近,在 GitHub 上便出现了一个叫做用聪明的方式学习Vim的项目,上线短短几天时间,便已经斩获2200星。
AI摘要:本文是一个关于Linux中`grep`命令的详细教程,介绍了`grep`的基本用法、常用参数、以及多个实用示例。`grep`命令用于在文件中搜索指定的字符串或正则表达式,并输出匹配的行。介绍的参数包括忽略大小写(-i)、反向匹配(-v)、显示行号(-n)、统计匹配行数(-c)、递归搜索(-r或-R)、使用正则表达式(-E)等。示例部分展示了如何使用这些参数进行基本搜索、忽略大小写的搜索、反向匹配、显示行号、统计匹配行数、递归搜索、使用正则表达式、匹配整个单词或整行、显示匹配行及其前后行、指定多个模式、只输出匹配的部分、搜索包含空格的字符串,以及搜索以特定字符开头或结尾的行。文章强调了掌握`grep`命令的重要性,并鼓励通过练习来熟练运用这些技巧。
例如:“m y s t r i n g”。这样做有两个原因,一是以防被误解为s h e l l命令,二是可以用来查找多个单词组成的字符串。
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
http://www.cnblogs.com/wang_yb/p/3990952.html
有时候我们不需要返回全部检索内容,而需要对检索的内容分几个部分回,这时候就需要用到分组(grouping)。我们可以将需要分开检索返回的部分用圆括弧括起来。比如,我们需要检索出'http:/www.hust.edu.cn.'网址,并分开返回网址的'http'、'www'、'hust'、'edu'、'cn'等部分,就需要用到分组。请看下面的代码。
ctrl + b 上一页 ctrl + f 下一页 ctrl + u 上半页 ctrl + d 下半页
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。
匿名管道只能用来进行进程间通信,让具有血缘关系的进程进行通信 让毫不相关的进程之间进行通信,就需要采用命名管道通信
退出vim 按键 功能 :wq 保存退出 :w filename 保存到指定文件 :q 退出,如果文件修改但没有保存,会提示无法退出 :q! 退出,不保存 进入插入模式 按键 功能 a 光标位置右边插入文字 i 光标位置当前处插入文字 o 光标位置下方开启新行 O 光标位置上方开启新行 I 光标所在行首插入文字 A 光标所在行尾插入文字 进入可视化模式 按键 功能 Ctrl+v 进入可视化编辑模式 其它 按键 功能 :set expandtab tab展开为空格 cc/S 清除整行,进入插入模式 d$
一、Makefile简介 Makefile是什么,能做什么用,为什么要用? 定义编译规则、自动化编译、提高效率 组织文件 Makefile由一组规则(Rule)组成,每条规则的格式是: 例如: 依
1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
1.17 正则的引用 所在的位置就看左侧的"("所在的位置,在第一个就是\1,第二个就是\2,嵌套引用也是这个道理
通配符是shell在做PathnameExpansion时用到的。说白了一般只用于文件名匹配,它是由shell解析的,比如find,ls,cp,mv等。
target是一个object file,可以是一个执行文件,也可以是一个标签preerquisites是依赖的文件command是shell命令
1991 年,来自荷兰的一名工程师 Bram Moolenaar 为了在他的Amiga计算机上复制Vi的功能,正式发布 了Vim的第一个版本。在当时无论谁也没想到,这款软件未来能在技术圈爆发出那么大的威力,为千千万万的工程师节省了无数时间,大幅提升他们的开发效率。
如上配置之后可以通过 <space><space>w{char} 快速跳转到包含特定字母的字符的开头
这几天学习java写了一些东西,代码有问题,就拿去问老师,把代码发给老师后,老师批评说我写的代码不规范,即使代码可以实现相应的功能,但是企业依旧不会使用你的代码,你拥有的仅仅是编程基础,老师不止一次告诉我,让我去学习编程规范,我觉得也是时候学习一波了,不知道各位读者有没有这种体验啊,比如一个QQ群,有萌新问你这个代码有什么问题,很多人想去帮忙,却不知道写的什么,才会一点一点问,这个方法是干什么的,那个变量是干啥,确实作为萌新的我们都将我们自己定义为中心,我们没有为别人考虑,当我们自己写代码的时候,我们当时是知道这个变量是干什么的,哪怕是一个a,一个b,因为那是你写的,你不可能那么快忘记,但是换另一个人来读你的代码,就需要从头重新刷你的代码,曾几何时,我的变量也是a,b,c,最狼狈的时候是我尽然找不到26个字母中可以用来命名的字母了,因为我太随意了,想到什么就写什么,a简单就写a,但是,当我第二年再次打开我写的这些,我当初自认为很好的代码来说,我也不知道我写的是什么,我只能从定义它的地方一步一步回忆。 写代码的过程就好像我们写作文,虽然我语文课从来不好好听哈,但是对于写作文呢,语文老师说过一句话:要先写自己,再写集体,然后顺势扩展到国家,社会等等,反正呢,就是一步一步往大阔。我相信各位读者的语文老师也说过这句话,写的代码我认为可以比作是个人,集体,国家几个阶段,刚开始初级阶段,我们写的代码可以乱,可以随意,只要能实现我们所需要的功能即可,这便是作文中的个人,中级阶段,我们写的代码需要同别人交流,总不能我说汉语,你说英语,你与大多数人不同,那你一定是不受待见的那一个,这便是作文中的集体,再往后就不举例子了,当你通过百度读到这篇文章的时候,我觉得你应该和正在写这篇文章的我一样,已经意识到了集体的意义,而不再是一个人的单打独斗,你可以自己学习代码,但你终究是要出去找工作的。离开了集体,我们什么都不是!想说的话就到这里,下面进入正题吧。
推荐几个正则表达式编辑器 Debuggex PyRegex Regexper 正则表达式是一种查找以及字符串替换操作。正则表达式在文本编辑器中广泛使用,比如正则表达式被用于: (Update:2015-11-17)更推荐看这篇文章正则表达式30分钟入门教程。 检查文本中是否含有指定的特征词 找出文中匹配特征词的位置 从文本中提取信息,比如:字符串的子串 修改文本 与文本编辑器相似,几乎所有的高级编程语言都支持正则表达式。在这样的语境下,“文本”也就是一个字符串,可以执行的操作都是类似的。 一些编程语言(比如
[0-9]代表的含意与\d就是完全一致的:一位数字;同理[a-z0-9A-Z_]也完全等同于\w
无注释,无文档,命名千奇百怪等等,对于后来者,是极其痛苦的,其实个人觉得一个非常好的产品,一手代码非常重要,既是标准,往往又是参照。
------------------------------------------------------------ Golang中的正则表达式 ------------------------------------------------------------ 用法: ------------------------------ 单一: . 匹配任意一个字符,如果设置 s = true,则可以匹配换行符 [字符类]
在linux下面工作,有些命令能够大大提高效率。本文就向大家介绍find、grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们。这篇推送较长,内容预告如下:
enca: http://dl.cihar.com/enca/ 文件名编码转换 iconv: 文件编码转换 convmv: 文件名编码转换 ldd: 查看可执行文件或动态链接库的依赖库 getconf: 查看配置信息(如getconf LONG_BIT可知当前系统是32位还是64位版本) tcpdump: 监视网络服务 sync: 将缓冲区内容写入磁盘 echo 3 > /proc/sys/vm/drop_caches: 手动释放缓存 man: 文档
概述 vim编辑器是linux下享有盛誉的文本编辑器,据说世界上的程序员只用三种编辑器,Vim(编辑器之神), Emacs(神的编辑器), 其他编辑器。编辑器之争一直以来都极容易引发程序员江湖的血雨腥
对于Linux服务器上的操作,我们往往少不了使用vim,而有时候我对vim的使用并没有那么的熟练和深入,这周就深入的学习了vim的使用,包括入门和进阶,先分享给你们,也方便自己以后复习查询。
本文探讨了基于字符串相似度、语义相似度的文本相似度计算方法,并分析了这些方法在文本相似度计算中的优缺点。同时,本文还介绍了一种基于深度学习的方法,该方法在文本相似度计算上具有较好的性能。
匹配以“sales”开头,后跟任意一个字符,再后以“.xls”结尾的10字符组合。
home---shift+end
领取专属 10元无门槛券
手把手带您无忧上云