13-5 vi查找和替换
七、查找和替换
vi 提供了在一行 或者 整个文件中,根据搜索条件将光标移动至指定位置的功能。
vi 还可以执行文本替换工作,客户可指定替换时能否需要客户确认。
1.行内搜索(准)
(1)f命令
命令 f 在行内进行搜索,并将光标移至搜索到的下一个指定字符。
比方,命令 fa 就会将光标移动到本行下 1 处出现字符 a 的地方。
在执行过一次行内搜索之后,输入分号(:)可以使 vi 重复上次搜索。
2.搜索整个文件(准)
(1)/命令
同第 3 章讲过的 less 程序一样,命令 “ / ” 可以完成对单词或者短语的搜索。
① 怎样做?
当客户使用 “ / ” 命令后,一个 “ / ” 符号会出现在屏幕的底部。
接下来,输入需要搜索的单词或者短语以 Enter 结束,光标就会移动到下一处包含被搜索字符串的地方。
② n命令
使用 n 命令可以重复此搜索。
③ 示例
仍以foo.txt作为试验对象,将光标移至文件的第一行,并输入如下代码:
/Line别忘了输入 Enter 以结束,光标将移动至第 2 行。
接下来,输入 n 命令,光标将继续移动至第 3 行。
重复输入 n 直至光标移动到文档的最后,且找不到符合条件的字符串。
④ 正则
虽然现在只讲解到 vi 的单词和词组的搜索模式,但是 vi 同样支持正则表达式(一种强大的表达复杂文本模式的方法)的应用。
3.全局搜索和替换
vi 使用 ex 命令来执行 几行之内 或者 整个文件中的搜索和替换操作。
输入以下命令可将文件中的 Line替换为 line。
:%s/Line/line/g下面就来解析这条命令每一部分的功能。(准)
| 组成 | 含义 |
|---|---|
| : | 分号用于启动一条 ex 命令。 |
| % | 确定了操作作用的范围。%简洁地代表了从文件的第 1 行到最后 1 行。本命令的范围还可以表示为 1,5(由于本文件只有5行),也可表示为 1,$ (意思是:从第1行到文件的最后一行)。假如不明确指出命令的作用范围,那么命令只会在当前行生效。 |
| s | 指定了具体的操作,本次是替换操作(搜索和替换) |
| /Line/line | 搜索和替换的文本。 |
| g | 代指 global(全局),也就是说对搜索到的每一行的每一个实例进行替换。假如 g 缺失,那么只替换每一行第 1 个符合条件的实例。 |
在命令末尾增加 c,则命令在每次替换之前都会请求客户确认。如下所示:
:%s/line/Line/gc此命令将文件foo.txt中的 line 替换成 Line,也就是将文件替换回原来的样子,但是每次替换前,vi 都会停下来讯问客户能否确认执行替换。
replace with Line(y/n/a/q/l/^E/^Y)?圆括号中的每一个字符都是一种可能的答复,下表具体阐述了每一个字符的含义。
| 功能键 | 行为 |
|---|---|
| y | 执行替换。 |
| n | 跳过此次替换。 |
| a | 执行此次替换和之后的所有替换。 |
| q 或者 ESC | 中止替换。 |
| l | 执行此次替换并退出替换。(是last的缩写) |
| Ctrl-E,Ctrl-Y | 分别是向下滚动、向上滚动,能用于查看替换处的上下文。 |
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 13-5 vi查找和替换
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 13-5 vi查找和替换