使用linux服务器,免不了和vi编辑打交道,命令行下删除数量少还好,如果删除很多,光靠删除键一点点删除真的是头痛,还好Vi有快捷的命令可以删除多行、范围。 删除行 在Vim中删除一行的命令是dd。...删除所有行 要删除所有行,您可以使用代表所有行的%符号或1,$范围: 1、按Esc键进入正常模式。 2、键入%d,然后按Enter键以删除所有行。...删除包含模式的行 基于特定模式删除多行的语法如下: :g//d 全局命令(g)告诉删除命令(d)删除所有包含的行。 要匹配与模式不匹配的行,请在模式之前添加感叹号(!): :g!.../foo/d-删除所有不包含字符串“foo”的行。 :g/^#/d-从Bash脚本中删除所有注释,模式^#表示每行以#开头。 :g/^$/d-删除所有空白行,模式^$匹配所有空行。...:g/^\s*$/d-删除所有空白行,与前面的命令不同,这还将删除具有零个或多个空格字符(\s*)的空白行。
问题 我们是不是会遇到这样的场景: 当访问一个图片展示比较多的网页时,页面加载速度很慢,尤其是其中的图片半天转不出个所以然来 很多时候,这是因为图片多导致的:大量的img图片导致页面渲染的堵塞。...因此,网页中图片的处理不可大意,尤其是图片很多的时候! 解决 遥想当年,为了解决这个问题,自己抄起键盘一个劲儿的疯狂输出,最终勉强解决了问题。...正在为自己的成就欣喜若狂的时候,发现“图片懒加载”的轮子早就有啦~ 了不起翻了翻相关的插件!Echo.js是最为简单明了,杠杠的好!这里分享给大家。...Echo.js Echo.js 是一个独立的延迟加载图片的 JavaScript 插件。Echo.js 不依赖第三方库,压缩后不到1KB大小。 GitHub上翻了下源码,打开一看,共计135行!...H1是视窗的高度,H2是img图片距离视窗的距离,可以自定义设置。当img到视窗顶部的距离等于(H1+H2)时,开始加载图片。 这样,图片只有在视窗滚到到临界值(H1+H2)的时候,才开始加载。
pandas数据清洗-删除没有序号的所有行的数据 问题:我的数据如下,要求:我想要的是:有序号的行留下,没有序号的行都不要 图片 【代码及解析】 import pandas as pd filepath...,默认0,即取第一行 skiprows:省略指定行数的数据 skip_footer:省略从尾部数的行数据 **继续** lst=[] for index,row in df.iterrows():...=int: lst.append(index) lst 定义一个空列表,用于存储第一列中数据类型不是int的的行号 方法:iterrows() 是在数据框中的行进行迭代的一个生成器,...它返回每行的索引及一个包含行本身的对象。...所以,当我们在需要遍历行数据的时候,就可以使用 iterrows()方法实现了。 df1=df.drop(labels=lst) 删除l列表lst存储的所有行号 【效果图】: 完成
项目使用C++ 11编写,只有一个头文件,但是在github上却获得了7600个stars和2200个fork。非常值得大家下载下来学习,尤其是想要学习多线程编码的同学。...代码相当简明,所有的代码都在 一个类中实现,对外暴露的也仅仅是一个构造函数、一个析构函数以及一个模板函数。
最近一直在想一个问题,如何能让js代码写起来更语义化和更具有可读性。...5、可以设置或获取整个流程的全局变量,这样所有的步骤都能共享该变量,如 设置全局变量值this.flowData({name1:value1,name2:value2,……}),获取全局变量值this.flowData...5、可以设置或获取整个流程的全局变量,这样所有的步骤都能共享该变量,如 设置全局变量值this.flowData({name1:value1,name2:value2,……}),获取全局变量值this.flowData...特别是在处理那种比如提交一个数据前,需要做一连串的校验和接口调用的时候,会更加适合,如果哪天需要在中间穿插一个校验或接口调用,只需要往流程中添加一步就可以了,完全做到松耦合。...好了,安利了那么多,现在来看看这个只有99行代码的框架的真面目 ↓ 我真的没有压缩代码,它真的只有99行! 最后提示: 框架源码和各demo在附件中可下载! 附件: flowJS.zip
导语 前面写了一篇文章,叫《一个只有99行代码的JS流程框架》,虽然该框架基本已经能实现一个流程正常的逻辑流转,但是在分模块应用下还是缺少一定的能力,无法将一个页面中的不同模块很好的连接在一起,于是对之前的框架进行了升级...,新增了子流程的概念。...在这个升级后的框架里(当然代码已经不止99行了,不要在乎标题),每个步骤不但可以是一个function,还可以引用另一个流程,这个被引用的流程就叫子流程。...在子流程的每一步中都可以获取 this.parent,得到的是当前子流程对应的步骤,这个步骤跟其他步骤一样也具有同样的API(详见上一篇文章《一个只有99行代码的JS流程框架》对步骤API的介绍)。...另外,需要说明的一点:这次的升级,并没有对流程步骤的API做改变,仅仅是引入了子流程的使用方式,其实就是定义子流程,然后引用子流程,接着就是父流程和子流程之间的交互。
有一个Excel操作问题:我想删除所有包含有“完美Excel”的行,如何快速操作? 我想,你肯定是多么地不想再看“完美Excel”公众号了!...如下图1所示的工作表,现在要删除单元格内容为“完美Excel”所在的行。 ? 图1 首先,选择所有的数据。...图2 单击“查找全部”按钮,在下面的列表框中选中全部查到的单元格(先选取第1行,按住Shift键,滚动到最后,选取最后1行,这将选择所有查找到的结果),如下图3所示。 ?...图3 单击“关闭”按钮,此时,工作表中所有含有内容“完美Excel”的单元格都被选择。 接下来,按 组合键,弹击“删除”对话框,选取“整行”,如下图4所示。 ?...图4 单击“确定”按钮,即可删除所有含有“完美Excel”内容的单元格所在的行。 详细的操作演示见下图5。 ? 图5
删除上面数据框中的第二行和第四行! 在数据分析中,有时候需要将缺失数据进行删除。...删除数据很有讲究,比如多性状模型分析时,个体ID1的y1性状缺失,y2性状不缺失,评估y1时,不仅可以通过亲缘关系矩阵和固定因子进行评估,还可以根据y1和y2的遗传相关进行评估,这时候,y1的缺失就不需要删除...tidyverse的drop_na函数,当面对多个列时,它的选择是“或”,即是只有有有一列有缺失,都删掉。有时候我们想将两列都为缺失的删掉,如果只有一列有缺失,要保留。...我看到一个issues:https://github.com/tidyverse/tidyr/issues/1054 想问hardey能不能增加这样的参数,有一个.logic参数,默认为or,可以设置and...if_all(-ID, .fns = is.na)) 特别是第二种方法,你有20个性状没问题,即使你有200个性状也是没问题的! 5. 所有测试代码汇总 欢迎关注我的公众号:育种数据分析之放飞自我。
删除一个表中所有含重复字段的数据 这天写了一个管理社工库的软件,就用我最熟悉的SQLite数据库,把从各处导出的数据(账号、密码、邮箱)存到本地数据库里,以后也方便随时查找。 ...其中需要一个功能,有的人喜欢用一个邮箱注册很多账号,产生了一些多余的数据。我们可以通过SQL语句批量删除user_email重复的数据,只保留其user_id值最小的那一行。...COUNT(x)是计算x的个数,COUNT(user_email) > 1就指user_name重复的行。而结合GROUP BY使得select出来的行不再重复。...所以DELETE FROM datebase WHERE user_email IN (select的返回值)就是删除所有user_name重复的行。 ...然后后面又跟了一个NOT IN,也就是要排除的行。
/ / php遍历一个文件夹内的所有文件和文件夹,并删除所有文件夹和子文件夹下的所有文件的代码,通过递归方式实现达到清空一个目录的效果,代码简单实用。...用到的函数: scandir($path) 遍历一个文件夹所有文件并返回数组。 unlink($filename) 删除文件。 ...rmdir($path) 只删除空文件夹 <?php //设置需要删除的文件夹 $path = "....(is_dir($path)){ //扫描一个文件夹内的所有文件夹和文件并返回数组 $p = scandir($path); foreach($p as $val){ //排除目录中的....$val); } } } } } //调用函数,传入路径 deldir($path); 以上所述是小编给大家介绍的php删除一个路径下的所有文件夹和文件的方法,希望对大家有所帮助,
为什么80%的码农都做不了架构师?>>> ? 把旧项目提交到git上,但是会有一些历史记录,这些历史记录中可能会有项目密码等敏感信息。...如何删除这些历史记录,形成一个全新的仓库,并且保持代码不变呢?...1.切换到新的分支 git checkout --orphan latest_branch 缓存所有文件(除了.gitignore中声名排除的) git add -A 提交跟踪过的文件(Commit...the changes) git commit -am "commit message" 删除master分支(Delete the branch) git branch -D master
随着Linux系统的发展,vi也被进一步开发变成了vim。vim 具有程序编辑的能力,字体是有颜色的,可以方便程序设计。如果你的Linux发行版只有vi,想使用vim,则需要安装。...但是vi本身不显示行数,vim才显示行数。 使用小写字母x删除光标所在的字符 使用大写字母X删除光标前面的字符 连续按两次小写字母d,光标所在行就能被整行删除。...vi的删除其实是剪切,当你删除某个内容以后,立即在某一行,按下小写字母p就能看到,你刚才删除的内容被粘贴在了这里。...在可视模式下,复制是y,删除是d。 查找文本内容,在命令模式下输入反斜杠“/”。然后输入需要查找的内容,按下回车,查找就开始了。如果找不到,他会有一个提示。...O,进入编辑模式后,从光标所在行的上一行开始插入内容 使用小写字母i,进入编辑模式后,从光标所在位置开始插入内容 使用大写字母I,进入编辑模式后,从光标所在行的第一个非空字符处开始插入内容 末行模式 使用小写字母
对于未使用过 Vim 的朋友来说,可能还无法体会到这种感觉。由于使用 Vim 有一定的学习成本,只有做到非常熟练的程度才能感受到它带来的快捷。...连续替换字母 cc 替换整行(就是删除当前行,并在下一行插入) cw 替换一个单词(就是删除一个单词,就进入插入模式),前提是游标处于单词第一个字母(可用b定位) C (大写C)替换至行尾...dk 删除上一行 dgg 删除当前行至文档首部 d1G 删除当前行至文档首部 dG 删除当前行至文档尾部 kdgg 删除当前行之前所有行(不包括当前行) jdG 删除当前行之后所有行...:1,10d 删除1-10行 :11,$d 删除11行及以后所有的行 :1,$d 删除所有行 J 删除两行之间的空行,实际上是合并两行。 8....可以删除所有的标记 当在查看错误日志时,正常的步骤是,vim打开文件,然后使用 shift+g 再跳转到最后一行,这里有个更简单的操作可以在打开文件时立即跳到最后一行。
const fs = require('fs'); const path = require('path');
由于使用 Vim 有一定的学习成本,只有做到非常熟练的程度才能感受到它带来的快捷。...连续替换字母 cc 替换整行(就是删除当前行,并在下一行插入) cw 替换一个单词(就是删除一个单词,就进入插入模式),前提是游标处于单词第一个字母(可用b定位) C (大写C)替换至行尾...dk 删除上一行 dgg 删除当前行至文档首部 d1G 删除当前行至文档首部 dG 删除当前行至文档尾部 kdgg 删除当前行之前所有行(不包括当前行) jdG 删除当前行之后所有行...:1,10d 删除1-10行 :11,$d 删除11行及以后所有的行 :1,$d 删除所有行 J 删除两行之间的空行,实际上是合并两行。 8....可以删除所有的标记 当在查看错误日志时,正常的步骤是,vim打开文件,然后使用 shift+g 再跳转到最后一行,这里有个更简单的操作可以在打开文件时立即跳到最后一行。
按照维基百科的介绍,vim 一共有 12 种不同模式,但只有 6 种基本模式,剩下 6 种都是基本模式的变种。但实际我们最常接触的只有两类模式:命令模式和编辑模式。...当然这是在命令模式下,按下字母键不会作为输入而改变编辑内容。 h: 向左移动一个字符 l: 向右移动一个字符 j: 向下移动一行 k: 向上移动一行 ?...例如删除字使用字母组合dw,如果光标出现在单词hello的第二个字符e上,此时在命令模式连续按下d和w,将删除从e开始之后的整个字,但是会e前面的h不会删除,删除后的结果就是还剩一个字母h。...3dd: 删除从光标开始的3行,当然这是一个例子,可以更改前面的数字删除任意数量的行 一次删除3行: ?...进入编辑模式 上面介绍的所有命令都是在命令模式下进行的。
或^ 到行头 $ 到行尾 f 向后搜索并跳转到第一个匹配的位置(很实用) F 向前搜索并跳转到第一个匹配的位置(实用) t 向后搜索并跳转到第一个匹配的位置之前的一个字母...(不常用) T 向前搜索并跳转到第一个匹配的位置之后的一个字母(不常用) 注:在命令行模式下,可通过输入:set nu以显示行号 2.3、Vim的退出与保存 2.3.1命令行模式下的退出...I 在行首插入 a 在光标后插入编辑 A 在行末插入 o 在当前行后插入一个新行 O 在当前行前插入一个新行 3.1.2、删除操作 进入普通模式,使用下列命令可以进行文本快速删除: 命令 说明 x...3.2.2、撤销(Undo)操作 Vim使用u或者u{n}进行撤销一次或者n次的操作; 使用U(大写) 撤销当前行的所有修改; 此外,Vim使用Ctrl+r进行Redo(复原)操作,进行对undo操作的插销...PS:这个游戏只有前三关是免费的!!! 如果文章有表述不当的地方可以留言指正,互相学习 。
vi; :[行号]:光标跳转到指定行的行首; :$:光标跳转到最后一行的行首; gg:跳转到首行; G:跳转到尾行 Ctrl+g:显示总行数; x或X:删除一个字符,x删除光标后的一个字符,而X删除光标前的一个字符...删除即剪切; d:删除选中的文本,删除即剪切; D:删除从当前光标到光标所在行尾的全部字符。删除即剪切; dd:删除光标所在行的整行内容。删除即剪切; ndd:删除当前行及其后n-1行,n为一个数字。...删除即剪切; y:复制选中的文本; y0:复制光标前一个字符到行首的内容 y$:复制光标后一个字符到行尾的内容 yh:复制光标前的1个字符 yl:复制光标后的1个字符 nyh:复制光标前的n个字符,比如...在Vim中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vim有一个专门的“转义”命令,可访问很多面向行的Ex命令。...Ctrl+字母: 在vim中,使用:set list显示所有字符时,经常会看到有^I、^M等符号,代表的字符可以使用:h digraph-table查看,特殊字符列表如下: ?
假如A文件内容为: 105 126 155 205 206 305 328 339 342 360 另有一B文件,现在要根据A文件中的行号,找出B文件所有对应行数据,并存到另一文件C中,SHELL如何实现
4、三种基本模式 在《大家来学vim》中提到vim有6+5种模式,但除了细分程度不同外,实际上常用的只有3种模式:Normal Mode、Insert Mode和Command-line Mode。...-> Insert Mode i 小写字母i,在光标位置插入 a 小写字母a,在光标的下一个位置插入 I 大写字母I,在光标所在行的第一个非空格处插入 A 大写字母A,在光标所在行的最后一个字符处插入...o 小写字母o,在光标所在行的下一行处插入新行 O 大写字母O,在光标所在行的上一行处插入新航 r 小写字母r,替换光标所在处的字符一次 R 大写字母R,持续替换光标所在处的字符,直到按下ESC...d1G 删除从光标所在行开始,到第一行的所有行 dG 删除从光标所在行开始,到最后一行的所有行 d$ 删除从光标所在位置,到行尾的所有字符 d0 删除从光标所在位置,到行首的所有字符...,到最后一行的所有行 y$ 复制从光标所在位置,到行尾的所有字符 y0 复制从光标所在位置,到行首的所有字符 3、粘贴操作(paste) p 小写字母p,粘贴剪贴板中的数据,
领取专属 10元无门槛券
手把手带您无忧上云