1、查找命令
/pattern 回车 :向下查找pattern匹配字符串
?pattern <Enter>:向上查找pattern匹配字符串
使用了查找命令之后,使用如下两个键快速查找:
n:按照同一方向继续查找;
N:按照反方向查找 。
1.1、字符串匹配
pattern是需要匹配的字符串。
例如:
/abc
<Enter>
#查找abc
1.2、特殊字符匹配
pattern还可以使用一些特殊字符,包括(/、^、$、*、.),其中前三个是vi与vim通用的,“/”为转义字符。
^ :以 某个字符串 开头的行。
$ :以某个字符串 结束的行。
* :通配符。
如:
/^abc<Enter> #查找以abc开始的行
/abc$<Enter> #查找以abc结束的行
//^abc<Enter> #查找^abc字符串
2、替换
基本替换
1 2 3 4 5 6 |
|
1 |
|
可以使用 #或+ 作为分隔符,此时中间出现的 / 不会作为分隔符
1 2 |
|
例如:
1 2 3 4 5 |
|
2.1、基本替换
:s/vivian/sky/ #替换当前行第一个 vivian 为 sky。
:s/vivian/sky/g #替换当前行所有 vivian 为 sky。
:n,$s/vivian/sky/ #替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky。
:n,$s/vivian/sky/g #替换第 n 行开始到最后一行中每一行所有 vivian 为 sky(n 为数字,若 n 为 .,表示从当前行开始到最后一行)。
:%s/vivian/sky/ #(等同于: $s/vivian/sky/ :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky。
:%s/vivian/sky/g #(等同于: $s/vivian/sky/g :g/vivian/s//sky/g)替换每一行的所有 vivian 为 sky。
2.2、可以使用 #或+ 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/ # 替换当前行第一个 vivian/ 为 sky/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/
例如:
:s/str1/str2/ #用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g #用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g #用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g #用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g #功能同上