鱼C论坛

 找回密码
 立即注册
查看: 15003|回复: 24

[基础课程] 第六节:搜索命令和替换命令

[复制链接]
发表于 2015-10-30 03:36:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第六节:搜索命令和替换命令


搜索命令

你知道文件中必定有你想要的东西,你也知道它的名字,但你却不知道它在哪里?在茫茫字符的海洋中,怎么办?

1.gif

查找呗,VIM 的查找是从按下斜杠(/)那一刻开始的……

在普通模式下按下斜杠(/)也是进入命令行模式,此时该字符和光标均出现在屏幕的底部,这跟冒号(:)一样。

紧挨着斜杠(/)的是搜索目标,比如 /love,说明你找的是 love 这个字符串在光标后边第一次出现的位置,当然你也可以输入中文,比如 /你瞅啥

2.gif

那如果要找下一个目标怎么办?这时你只需按 n 键即可定位到下一个符合的目标(向下查找),而按 N 键则返回上一个(向上查找)。

注意:第一个搜索到的目标不是文件中的第一个目标,而是从你的光标所在处开始找到的那个目标。所以你如果想要搜索文件中第一个匹配的目标,你应该先 gg 将光标移动到文件头,然后再使用搜索命令。

在普通模式下按下问号(?)也是进入命令行模式,实现的也是搜索功能。不过这回它是反过来的,你可以认为它是斜杠(/)功能的“反面派”。

前边我们说过 /FishC 是从光标位置向后开始搜索 FishC 这个字符串,而 ?FishC 则相反,是从光标位置向前开始搜索。

怕你头晕,给你列个表:

3.gif

/目标
?目标
搜索方向
从光标位置向后 从光标位置向前
n
向后搜索下一个 向前搜索下一个
N
向前搜索下一个 向后搜索下一个

当搜索到了文件的末尾(/目标)或开头(?目标),页面下方面会显示“Search hit BOTTOM, continuing at TOP”或“Search hit TOP, continuing at BOTTOM”的字样。表示一轮搜索到文件尾/头了,搜索下一个就是从文件头/尾开始咯。

4.png

我发现你发现了,VIM 会自动高亮所有匹配的目标,即使在你找到目标之后,它们仍然高傲的亮着!

5-1.gif 5-2.gif

很烦人对吧?告诉你怎么取消,输入冒号(:)进入命令行模式,然后输入 nohl 即可。

最后提个醒:在搜索命令中,.、*、[、]、^、%、/、?、~ 和 $ 这 10 个字符有着特殊意义,所以在使用这些字符的时候要在前面加上一个反斜杠(\),比如你要搜索问号,则输入 /\?


替换命令

搜索在很多情况下都是为了替换,这句话小甲鱼没说错吧?

通过搜索功能,我们将光标定位到目标位置,如果你确定这个目标是可恶的,需要被替换的,你可以输入 :s/old/new,这样即可将光标所在行的第一个 old 替换为 new;你如果输入的是 :s/old/new/g,则表示将光标所在行的所有 old 替换为 new。

但如果要替换整个文件的所有匹配字符串怎么办?总不能每一行来一下吧?
只要你能想到的,VIM 就有办法!输入 :%s/old/new/g表示替换整个文件中每个匹配的字符串。

噢,你没有太大的把握,希望 VIM 在每次替换前都咨询一下你:“亲,我准备替换 XX 了,你确定要将 XX 替换成 OO 吗?”
可以,输入 :%s/old/new/gc

6.png

看到页面下方的 (y/n/a/q/l/^E/^Y) 了吗?这是 VIM 在咨询您的意见呢!

  • y 表示替换
  • n 表示不替换
  • a 表示替换所有
  • q 表示放弃替换
  • l 表示替换第一个并进入插入模式
  • ^E 表示用 Ctrl+e 来滚动屏幕
  • ^Y 表示用 Ctrl+y 来滚动屏幕

好吧,你可能会问“如果我只想替换第 5 行到第 13 行之间的所有 XX,可以吗?”

当然可以啦,使用 :5,13s/old/new/g 即可胜任你的要求:

7.png

我想你已经猜到了:5 表示开始替换的行号,13 表示结束替换的行号。

注释:VIM 的搜素和操作远没有这么简单,还有很多秘籍没有放出来,不过今天说的内容,已经足够你用了吧……更多秘籍将在进阶技巧中仔细讨论!

last.gif

关于魔鬼训练小程序的众多问题,请移步:VIM魔鬼训练须知

  

本帖被以下淘专辑推荐:

  • · VIM|主题: 7, 订阅: 4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-29 20:54:09 From FishC Mobile | 显示全部楼层
next
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-6-7 13:38:21 | 显示全部楼层
text  学到这了 自己报道下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-10 21:04:45 | 显示全部楼层
之前是看到这里了 没实际操作 我打算实际操作两天 再进行  下一步  实际操作 每次都出错  我也是无语了  那位师兄师姐能看到 这个  帮忙看看什么情况 我的 虚拟机  Teminal  也步高亮了  不显示颜色区别了 我之前确实是按照*文章操作的  而且也成功了 这几天变这样了  纠结了
1111111111111.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-8 12:20:41 | 显示全部楼层
屁哥 发表于 2016-6-10 21:04
之前是看到这里了 没实际操作 我打算实际操作两天 再进行  下一步  实际操作 每次都出错  我也是无语了  那 ...

厉害了,这条鱼不会是你手打的吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-8 18:32:22 | 显示全部楼层
caiyang 发表于 2016-11-8 12:20
厉害了,这条鱼不会是你手打的吧

哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-8 18:34:40 | 显示全部楼层
caiyang 发表于 2016-11-8 12:20
厉害了,这条鱼不会是你手打的吧

是手打的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-9 09:57:50 | 显示全部楼层
@小甲鱼,如何替换特殊字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-9 10:03:05 | 显示全部楼层
摇钱妹ldd 发表于 2016-11-9 09:57
@小甲鱼,如何替换特殊字符

我明白了,原来不再同一行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 12:45:54 | 显示全部楼层
屁哥 发表于 2016-6-7 13:38
text  学到这了 自己报道下

求解,这个程序你们是在哪里下载的呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 14:06:32 | 显示全部楼层
最终BOSS 发表于 2017-3-13 12:45
求解,这个程序你们是在哪里下载的呀

C语言——番外篇
QQ图片20170313140308.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-4-30 12:56:23 | 显示全部楼层
小程序到底在哪里呀???????????????谁能告诉我一下啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-17 14:56:17 | 显示全部楼层
替换还是有点麻烦。没IDE方便。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-23 17:23:57 | 显示全部楼层
鱼哥,“?”和“%”的查找不需要加“\”,不仅不需要,而且加上“\”会查不到。

我的电脑直接输入“/?”和“/%”就可以查找,是因为系统版本不同的原因吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-9 15:48:45 | 显示全部楼层
倒数第二个了   记忆好要多打
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-8 15:54:30 | 显示全部楼层
屁哥 发表于 2017-3-13 14:06
C语言——番外篇

这是17年的,现在vim快速入门中没有找到这个小程序诶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-1 20:42:00 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-22 16:16:45 | 显示全部楼层
VIM能满足我所有的要求,我的最爱!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-30 15:10:22 | 显示全部楼层
努力中,加油!加油!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-12 02:02:24 | 显示全部楼层
谢谢小甲鱼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-16 18:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表