00:00
大家好,欢迎大家继续收看上鬼谷的云计算课程,我是沈超老师。这节课呢,继续来学习VI的命令模式操作,那我们来看看查找。各位,这个搜索和我们在慢当中的搜索内容方式类似啊,其实基本上可以认为是一样的,那么搜索方法是斜杠后面加你要搜索的内容。和问号加诉讼内容都可以。区别在于。斜杠的作用是从光标向下搜索,而问号的作用是从光标向上搜索,一个是往下找,一个是往上找,哎,其实这个,那这样的话,其实我觉得记一个就行,那我觉得这个还是最常用的啊。好,那我们同样用ABC,那这个时候。我们从头开始搜索,诶对这里看见。我打开ABC的时候,诶发现我们打开的这个东西和我们正常打开不一样,它这里提示,其实它这里提示的是你这个文件已经被人在使用。
01:03
为什么会有这样的提示?来,我们看看Windows下。我在Windows当中摁alt键。工具文件夹选项,我在这里呢,这个显示这个隐藏文件,把它显示出来。这个时候看啊,我打开任何一个文件之后,哎,我是不是没没勾上。没有啊,那再来一下,刚刚是不是没选对。呃,我看是显示啊,这。把这个要勾出来啊。把隐藏文件显示出来好。这个时候你会发现什么?我打开一个文件之后。这个文件会有一个隐藏的临时文件存在,发现了吗?那这文件是用来干嘛?你记得你的word,如果你的电脑依赖关机了,你的word没有保存,等你下次再打开的时候,它会提示你之前有未保存的数据,要不要保存,它咋知道你有未保存呢?这里的临时文件导致的。
02:01
而。如果你的电脑突然在这个时候意外关机了,这个临时文件就有可能会卡在这里,那正常情况下你word只要保存关机,这个临时文件就消失了,那但是如果你的电脑意外关机,这个就会卡在这儿,那系统就会如果发现当你再次打开这个文件的时候。系统如果发现有这个临时文件,它就认为你的这个文件是被人打开的啊,所以呢,他会在Linux上会有这样的提示,其实说白了就是我上次没有正确的退出这个保存,退出ABC文件,所以导致ABC的一个隐藏临时文件,这个没有被这个替换掉,没有被这个删除,所以他认为我的这个用户是有人已经正在打开,这里都是在说另外一个用户正在使用它,所以呢,如果你要编辑。直接回车或者N线或者直接回车会编吉他啊也可以,但是每次都这样很麻烦啊,那怎么办?碰到这情况都是你这个非法关机导致的,把这个东西干嘛删了就行了。
03:05
把这个。这个隐藏文件删了啊就没事了,然后呢,以后再打开ABC就不会有提示啊好,那我们还是来搜索,我从头看,我把鼠标放在了这个光标放在了第一行,那然后搜索S,这个就是我们前面搜过了,找到了第一个SNN键会下一个。然后呢,直到把所有的都找完。它底下有一个红色的提示,告诉你搜索完成了,它又从第一个开始往下搜索,OK,所以说这就是搜索啊,N键下一个大N是上一个,那这个还是知道一个就行,我觉得有这俩就够了。好。其次啊,不光有搜索,是不是还应该有替换,对吧?我们这里除了有查找,是不是还会有替换,对吧?那我们的Linux当中也有替换,替换的格式是这样的。看到。冒号来冒号模式操作对吧。
04:03
替换的行号范围,替换第一行到第十行S代表替换,把旧的换成新的,这也代表替换所有啊,那也就是说啊,在理论上来说,这个不加这。他只会切换这个范围之内的第一个殴打。如果这个时行范围内有三个O的不加,这只会替换第一个加了这这三个都会换掉是吧?但是呢,现在的版本当中,这个既不加,他也会把全部替换,但是学员就说那老师不加也行啊,我还是说这是标准格式或者说习惯用法照着写就行,好吧,那如果想要替换全篇文档。把这个行号换成一个变量百分号。这个百分号在这里就代表替换整篇文档,那我试试来。我们试试。那我们。在这里我还是替换size,首先我要替换,比如说我先切换这三个,那我就是30行到第32行对吧,问号。
05:02
30逗号32SS代表替换,把C换成哈G啊,回车看下面的没换。对吧,只把这三个哈,这个S换了对吧,那如果要是替换整篇文档呢?问号百分号啊,问号这个啊百分号,然后S100分号是变量,代表整篇文档,把整篇文档所有的size换位哈,好斜放句好回撤就全换了。哎,非常简单啊,这个格式啊,大家可能一开始觉得这个呃很陌生,其实当你用用你会发现后面我们很多的命令啊,比如说我们后面要学的这个文本三剑客之一的set命令,这个东西它就是用的也都是类似的格式啊,这个东西背熟了就好啊,一开始可能还是需要点时间背一下啊,这是基本替换啊,这是基本的替换。那接下来呢,接下来呢,我们讲几个特殊的例子啊,啥事来各位。
06:04
我们说在linus当中,井号开头是注释对吧,那我能不能注释前十行呢?手工一个一个注释很不方便,对不对。我也不觉得这样做就是这样做合理,那我们应该是不是可以考虑可以通过批量替换的方式来注释现实可不可以,可以吧,那我们试试啊,一到第十行S,那关键的问题是把什么东西换成井号?对吧,各位正则表达式啊,看到了吗。这个尖角号是什么?行首吧,把行首替换为井号,哎,就这个意思啊。OK,其实这个它的作用就是注释第一行倒计时行来回车看有了吧。前面是不是有了对吧?好,那既然能够注释,是不是就应该可以取消注释,那咋取消也很简单,一逗号是S,把井号换为空可为。
07:10
可不可以,那我想这里问你个问题啊。我要不要在这个井号前面加行首符,要不要?要不要?各位要了,如果在这里前面不加抗守符,咱们说正则是包含匹配,那它就代表把一到十行所有范围当中的井号全部都化为空。那和我们的需求就不一样了,你看后面是不是有些是不是第二个,是不是还有还有井号,那我们的需求是不是只是取消行首第一个井号,所以这个地方要记得啊,一定要在前面加行首符。否则这个东西替换的就会把所有的这个井号都会替换掉,所以不合理,那这样的话看一到十行的井号替换了。对吧,所以这是。批量注释和批量取消注释。其次。
08:02
在12当中,或者说在Linux当中,我们是用井号来做注释,但是在我们绝大多数的程序语言当中,比如说C语言,比如说PP语言。我们都是采用了双斜杠来做注释。那我们有没有可能拿VI来写PP或者C的脚本?肯定有了吧?那这种情况下,我能不能在前十行加入双斜杠?其实也就是说用这种格式来注释前十行。当然这个格式在我们的Linux文本当中,注释是不起作用,它反而会报错,但是呢,我们说如果我们写这个C语言或者是PP,这种情况下,我们是不是可以通过批量注释来完成,也是可以了,那怎么做看他。冒号一,逗号十。把行首替换为双斜杠。看完直接蒙比较,我们来对比一下,首先啊,我们再说。在我们的Linux当中。这个符号代表转义符,如果放在字符串当中,各位小心啊,如果这个符号放在命令行当中,是代表换行,这个是说过了,但如果是在这里,在字符串当中,在这里它代表的是转移符,什么意思,各位。
09:15
在我们的替换当中,这个斜杠是替换格式的一个,对吧。也就是说,这个斜杠是有特殊含义的。而我们现在要做的事情是把它加入双斜杠,那我们加入了这个双斜杠只是普通字符串,没有特殊含义,所以看在我们的这个要加入的斜杠前面加入转移符,它的作用是把后面这个符号变为普通字母串,不再具备特殊含义。听明白了吗?我再说一遍啊,因为这个斜杠在这个格式当中本身是有特殊含义的,代表我们命令的分割就是替换格式,对吧?那现在我要做的事情是把它变为普通字符串,这时候就需要在前面加转移符,换句话说,这两个东西取代的就是一个斜杠,只是这是一个普通字符串,而这个是特殊格式啊,如果不加转移符就是特殊格式。
10:09
看明白了,那这个时候我们注意一下看这个斜杠是S和O的斜杠。而这个斜杠呢,这个形状。就是old和new之间的写法。最后这个斜杠是六和G之间的斜杠,中间这四四个转一符双斜杠,各位是转一符双斜杠。看到了吗?看到了吗?能看懂了吧。那也就是说这条命令的作用是把行首后面替换成这个,哎,就这个意思,好,那我们回车试试,回车看前面是不是加入了。行首符对吧,那既然能够加入行首符,那就应该可以取消,那我们取一下试试,因为逗号是10S,把什么换成空,把行首的转运符。
11:01
双斜杠替换为空,看懂了吗?我对一下。S和O的之间的斜杠。O和new之间的斜杠,New和J之间的斜杠,然后中间转移副双斜杠看到吗?看懂了,那回车就会替换掉各位。为什么举这么复杂的例子,原因啊,这两个例子,第一有可能在实际工作中会用到,第二它确实不是太好,这个自己如果要求你们自己写还是挺困难的,所以我把它作为一个例子,把它提前写出来,然后呢,让你们大家有这么一个参考。你以后用到了,你就直接照着抄,其实我说绝大多数替换都是前面那个old幻境,也就是刚刚那个赛,我换成哈,绝大多数都是这样,没有那么复杂,但是这两个例子比较特殊,我就把它当成这个这个这个课堂实例教给大家,如果你用到就照着抄就行了啊,这也就是个例子,好,各位。
12:00
我们今天呢,把这个查找和替换讲完了,那各位我们讲完了我们VI当中的基本命令行,基本的这种命令模式操作。各位,这些东西它本身都不难,难度很低,没有任何理解的东西,你就照着它吧,敲就行了,但是问题在于,这东西可能光靠背还不一定行,这东西干嘛是一种熟练的操作,是需要建立你的操作感觉了。各位,我一直在说命令行的东西,它的操作是需要有一定的感觉的,要不然你就会感觉你打的极其不流畅,也很很痛苦,所以说如果你真的以后是要吃卷晚饭,你这个东西就一定光不光背,不光要背还要干嘛,要多练习,不要忘了就是。好了,那这节课的内容就是这样,我们下节课再见。
我来说两句