如果已经在入 Git 库中的文件的行尾为 CRLF,则该文件在入 Git 库时,不再转换为 LF。 示例 2 *.txt text 对于 txt 文件,标记为文本文件,并进行行尾规范化。...示例 3 *.jpg -text *.jpg binary 对于 jpg 文件,标记为非文本文件,不进行任何的行尾转换。*.jpg -text 可能是旧版本的写法。...示例 4 *.vcproj text eol=crlf 对于 vcproj 文件,标记为文本文件,在文件入 Git 库时进行规范化,即行尾为 LF。但是在检出到工作目录时,行尾自动转换为 CRLF。...示例 5 *.sh text eol=lf 对于 sh 文件,标记为文本文件,在文件入 Git 库时进行规范化,即行尾为 LF。在检出到工作目录时,行尾也不会转换为 CRLF(即保持 LF)。...(CentOS 自带的 git 版本较低) 可以参考:CentOS yum 升级 git 版本 后来还查到了一个方法,.gitattributes: * -crlf References Git 的 gitattributes
让 Sublime 支持 Vim Sublime 中自带支持 Vim 的插件,但默认是关闭的。...但 Esc 键好远,我们可以在 Key Binding 中改成自己习惯的键。...$: 行尾。 ^: 行首。0也可以达到一样的效果。 gg: 到文件第一行。 ngg: 到文件第n行。 G: 文件最后一行。 M: 到屏幕中间。 {: 向上跳转到最近的空行。...A: 当前行尾插入。 O: 在当前行之前插入新行。 o: 在当前行之后插入新行。 删除 x: 删除光标所在位置的字符。 D: 删至到行尾。 d: 配合移动光标一起使用,如: d^: 删至行首。...查找 /: 输入关键字,发现不是要找的,直接在按n,向后查找直到找到为止。 ?: 输入关键字,发现不是要找的,直接在按n,向前查找直到找到为止。 修改 y: 复制。
不过到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper...如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?...如果是文本文件,则在文件入Git库时,行尾自动转换为LF。如果已经在Git库文件的行尾为CRLF,则该文件在入Git库时,不再转换为LF。 第2行,对于txt文件,标记为文本文件,并进行行尾规范化。...第3行,对于jpg文件,标记为非文本文件,不进行任何的行尾转换。 第4行,对于vcproj文件,标记为文本文件,在文件入Git库时进行规范化,即行尾为LF。...但是在检出到工作目录时,行尾自动转换为CRLF。 第5行,对于sh文件,标记为文本文件,在文件入Git库时进行规范化,即行尾为LF。在检出到工作目录时,行尾也不会转换为CRLF(即保持LF)。
在行尾空两格进行注释....短一点的注释 (如代码行尾注释) 可以随意点, 依然要注意风格的一致性. 完整的语句可读性更好, 也可以说明该注释是完整的, 而不是一些不成熟的想法....TODO 注释 对那些临时的, 短期的解决方案, 或已经够好但仍不完美的代码使用 TODO 注释....弃用注释 通过弃用注释(DEPRECATED comments)以标记某接口点(interface points)已弃用。...如果您不知从何下手,可以找标记弃用注释的当事人一起商量。
使用left与remove接口 left(n)为从行首往后找n个字符; remove(position, n), position为行中位置,n为删除的字符数量。...去除行尾指定字符(串) 1. 使用replace与正则表达式配合 其正则表达式形式为需要去除的'字符'+'$'符号; '$'符号的意思为结尾。...使用right与remove接口 right(n)为从行尾往前找n个字符; remove(position, n), position为行中位置,n为删除的字符数量。...总结 正则表达式使用方便,但性能会差点,处理字符且次数不多的情况下可以使用; 使用left(right)与remove组合操作上会多写一步,但性能更好; 正则表达式式一般是处理较为复杂的场合。
比如,对于内参数为[fx,fy,u0,v0]的摄像头,如果一个像素的位置是(u,v),则对应的x和y应为 设世界坐标系中的一点为(Xw,Yw,Zw),则 有必要再解释一下旋转矩阵R和平移向量T的具体意义...我们前面得到了: 由于我们给了w一个估计值,因此可以先将其看做已知量,删掉第三行(这样方程中就少了4个未知量,更方便求解),得到 由于w被看做已知,因此上面的迭代方程可以看做有8个未知量,分别是...但实际中,解非线性方程很麻烦,所以openCV中应该是用了其他的优化方法。...最无奈地,我们可以找6个点,每个点用“—原始方程–”消去w得到2个线性方程,最终也能得到12个方程,不过由于这种方法的求解过程中直接无视了正交矩阵R本身的特征,最后得到的结果会由于点坐标的测量误差和计算误差而稍微违反...要知道,这里只是利用线性关系消去了w,但保留了原来第三行中的未知量,因此未知量的数量保持12不变;而POSIT方法中,直接为w选取了一个估计值,并删去了“—原始方程–”的第3行,这样方程中才少了4个未知量只剩下
ctrl + e :光标跳到行尾。 ctrl + d :后删一个字符;退出会话,类似于 exit 。...ctrl + k :剪切光标后到行尾的所有内容(可以当作清除用) ctrl + u :剪切光标前到行首的所有内容(可以当作清除用) ctrl + w :剪切光标前的单个单词,以空格分隔(可以当作清除用)...alt + r :使 xshell 会话透明化(这样好方便你抄写命令) 二、快速搜索历史命令 老实说,在不知道这个历史命令之前,我都是 ↑↓ 键找或者是 history | grep 过滤的。 ?...现在知道 ctrl + r 命令了,用起来真的好爽,貌似同事一直也是用的这个命令,现在终于是让我找到了。。 简单说一下用法: ctrl + r:反向搜索历史命令。...真的比 ↑↓ 键找或者是 history | grep 好用省时很多了。 ? ----
xml文档 概念:xml文档是可拓展标记语言,与html类似,不同在于xml被设计来传输和存储数据,而html被设计来显示数据的。 实例: <?...#扫描输入中的下一个标记。 lex->term is set to the scanned token type.#lex-> term设置为扫描的令牌类型。...return; } 可以看到,正如官网文档错误处理中解释的,当xpath语法出现意外的行尾、没有结束引号或未知字符等不符合xpath语法的时候就会设置令牌结束和令牌类型为MYXPATHLEX_ERROR...这两个xml函数在以xpath语法为基础的代码实现过程中, 对错误场景(出现意外的行尾、没有结束引号或未知字符集的情况下),设置令牌类型了为A, 这与扫描令牌函数myxpathparseterm的默认参数...在错误处理流程中,myprintf_error函数直接将错误场景下的错误xpath语法抛出到错误信息中, 由于其设置了格式化输出,当精心构造的‘错误的xpath语法’被抛出的时候,成为了一个可以控制的注入点,从而达到了攻击的条件
目录主要存放用户资源管理目录 文件 Linux系统文件类型(八大类) 普通文件 : - 目录文件 : d 字符设备文件: c 块设备文件: b 软连接: l 管道文件: p 套接字 : s 还有未知文件...ps aux | grep 命令 umask 指定用户创建文件时的掩码,默认指定权限 vi编辑器 跳转到指定行 第一种:88G(命令模式) 第二种::88(末行模式) 跳转行首: gg(命令模式) 跳转行尾...: x(命令模式)执行结束,工作模式不变 删除一个单词: dw(命令模式)光标至于单词的首字母进行操作 替换单个字符: 将待替换的字符用光标选中,r(命令模式)再按欲替换的字符 删除光标至行尾: D或者...移动光标来选中待删除区域,按d删除 删除指定一行: 光标所在行,按dd(命令模式) 删除指定n行: 在光标所在行 (向下删除)n+dd (命令模式) 复制一行: yy 粘贴: p 向后 P向前 查找: 1.找想要找的内容...命令模式下,按 / 树=输入想要搜索的关键字,回车即可,按 n检索下一个 2.找 看到的内容 命令模式下,将光标置于单词任意一个字符上,按 * 或者 # 单行替换: 将光标置于待替换行上,进入末行模式
包命名的路径建议符合所开发的系统模块的定义,以便看了包命名就明白是哪个模块,从而直接到对应包里找相应的实现。...例如:com.srrui.base.类 个人项目包的推荐命名: indi:个人项目,指个人发起,但非自己独自完成的项目,可以公开或私有项目,版权主要属于发起者。...如果类名称由多个单词组成,则每个单词的首字母均应为大写,例如:TesePage; 如果类名中包含单词缩写,则这个所写词的每个字母均应大写,例如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的...4、变量名 推荐的命名规范有以下三种: Camel 标记法:首字母是小写的,接下来的单词都以大写字母开头。...譬如上例中的文档数量记录变量,则修订为:DocCount 匈牙利标记法:在以 Pascal标记法 的变量前附加小写小写序列说明该变量的类型。
$"命令还可接受一个计数,如"1$"会将光标移动到当前行行尾,"2$"则会移动到下一行的行尾,如此类推。"0"命令却不能接受类似这样的计数,命令"^"前加上一个计数也没有任何效果。...如果你知道你要找的确切位置是目标字符串的第几次出现,还可以在"n"之前放置一个命令计数。"3n"会去查找目标字符串的第3次出现。 "?"命令与"/"的工作相同,只是搜索方向相反."...25.具名标记 命令"ma"将当前光标下的位置名之为标记"a"。从a到z一共可以使用26个自定义的标记。要跳转到一个你定义过的标记,使用命令" `marks "marks就是定义的标记的名字。..."c$"改变当前光标到行尾的内容。...42.文件标记 以大写字母命名的标记。它们是全局标记,它们可以用在任何文件中。比如,正在编辑"fab1.Java",用命令"50%mF"在文件的中间设置一个名为F的标记。
SLTBuyNode(x); if (*pphead == NULL) { *pphead = newnode; } else { SLTNode* pcur = *pphead; //找尾结点...找尾结点。循环的条件是 pcur->next,而不是 pcur。...2.5 头插 各结点的地址应为0x0012FF...,在此纠正下面的错误。...处理只有一个结点的情况,要删除的就是头结点 if ((*pphead)->next == NULL) { free(*pphead); *pphead = NULL; } else { //找...\n"); } } 【验证】 2.9 在指定位置之前插入数据 各结点的地址应为0x0012FF...
w: 前移一个单词,光标停在下一个单词开头; W: 移动下一个单词开头,但忽略一些标点; e: 前移一个单词,光标停在下一个单词末尾; E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点; b:...$: 移动到行尾。 g$: 移动光标所在屏幕行行尾。 n|: 把光标移到递n列上。 nG: 到文件第n行。 :n 移动到第n行。 :$ 移动到最后一行。...m{a-z}: 标记光标所在位置,局部标记,只用于当前文件。 m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。 `{a-z}: 移动到标记位置。...:marks 显示所有标记。 :delmarks a b – 删除标记a和b。 :delmarks a-c – 删除标记a、b和c。 :delmarks a c-f – 删除标记a、c、d、e、f。...:%s/$/xxx/g - 在每一行的行尾插入xxx,$表示行尾。 所有替换命令末尾加上c,每个替换都将需要用户确认。
、 11.移动到行首或行尾 “$”命令将光标移动到当前行行尾。如果你的键盘上有一个键,它的作用也一样。“^”命令将光标移动到当前行的第一个非空白字符上。...如果你知道你要找的确切位置是目标字符串的第几次出现,还可以在“n”之前放置一个命令计数。“3n”会去查找目标字符串的第3次出现。 “?”...25.具名标记 命令“ma”将当前光标下的位置名之为标记“a”。从a到z一共可以使用26个自定义的标记。要跳转到一个你定义过的标记,使用命令” `marks “marks就是定义的标记的名字。...“c$”改变当前光标到行尾的内容。 ...41.文件标记 以大写字母命名的标记。它们是全局标记,它们可以用在任何文件中。比如,正在编辑“fab1.Java“,用命令“50%mF”在文件的中间设置一个名为F的标记。
这些算法都有一个共同点,即给出的训练样本自身带有标记。比如,使用线性回归预测房价时,我们所使用的每一个训练样本是一个或多个变量(如面积,楼层等)以及自身带有的标记即房价。...而使用Logistic回归,神经网络和支持向量机处理分类问题时,也是利用训练样本自身带有标记即种类,例如进行垃圾邮件分类时是利用已有的垃圾邮件(标记为1)和非垃圾邮件(标记为0),进行数字识别时,变量是每个像素点的值...,而标记是数字本身的值。...显然,现实生活中不是所有数据都带有标记(或者说标记是未知的)。所以我们需要对无标记的训练样本进行学习,来揭示数据的内在性质及规律。...还是以根据人的身高和体重划分T恤的大小码为例,若我们想将T恤大小划分为S/M/L这3种类型,那么K的取值应为3;若想要划分为XS/S/M/L/XL这5种类型,那么K的取值应为5。如图9-6所示。
想象一下,当你在陌生的城市找餐馆,可能会问附近的朋友:“嘿,你们常去哪家吃?”KNN算法就像这样,它找“最邻近”的样本朋友来帮你做决定。简单直接,却能在分类和回归问题上展现不凡力量。...监督学习任务的基本流程和架构: (1)首先准备数据,可以是视频、音频、文本、图片等等 (2)抽取所需要的一些列特征,形成特征向量(Feature Vectors) (3)将这些特征向量连同标记(Label...KNN)K近邻是机器学习算法中理论最简单,最好理解的算法,是一个非常适合入门的算法,拥有如下特性: 思想极度简单,应用数学知识少(近乎为零),对于很多不擅长数学的小伙伴十分友好 虽然算法简单,但效果也不错...算法的思想:通过K个最近的已知分类的样本来判断未知样本的类别。 2.2 算法原理 KNN算法描述 输入:训练数据集 ,xi为实例的特征向量,yi={C1,c2...Ck}为实例类别。...输出:实例x所属的类别y 步骤: (1)选择参数K (2)计算未知实例与所有已知实例的距离(多种方式计算距离) (3)选择最近K个已知实例 (4)根据少数服从多数的原则进行投票,让未知实例归类为
、 11.移动到行首或行尾 "$"命令将光标移动到当前行行尾。如果你的键盘上有一个键,它的作用也一样。 "^"命令将光标移动到当前行的第一个非空白字符上。...如果你知道你要找的确切位置是目标字符串的第几次出现,还可以在"n"之前放置一个命令计数。"3n"会去查找目标字符串的第3次出现。 "?“命令与”/“的工作相同,只是搜索方向相反....25.具名标记 命令"ma"将当前光标下的位置名之为标记"a"。从a到z一共可以使用26个自定义的标记。要跳转到一个你定义过的标记,使用命令" `marks “marks就是定义的标记的名字。..."c$"改变当前光标到行尾的内容。...快捷命令:x 代表dl(删除当前光标下的字符) X 代表dh(删除当前光标左边的字符) D 代表d$(删除到行尾的内容) C 代表c$(修改到行尾的内容) s 代表cl(修改一个字符) S 代表
但VIM的强大之处在于他的命令行模式!你会发现,在你越来越了解VIM之后,你就会花越来越少的时间使用插入模式了。 使用 h,j,k,l 使用VIM高效率编辑的第一步,就是放弃使用箭头键。...一开始可能需要适应一下,但一旦习惯这种方式,你就会发现这样操作的高效之处了。 在你编辑你的电子邮件或者其他有段落的文本时,你可能会发现使用方向键和你预期的效果不一样,有时候可能会一次跳过了很多行。...(这真的很有用) Fx:和fx类似,不过是往回找。 w:光标往前移动一个词。 b: 光标往后移动一个词。 0: 移动光标到当前行首。 ^:移动光标到当前行的第一个字母位置。 $: 移动光标到行尾。...这个命令很有用,而且你不用自己去标记它。 高效的输入 使用关键词自动完成 VIM 有一个非常漂亮的关键词自动完成系统。...这样当然可以进入插入模式,但通常不是那么合适,因为VIM提供了很多进入插入模式的命令。
领取专属 10元无门槛券
手把手带您无忧上云