替换
本段落中设待替换的内容为xxx,替换后的内容为hhh。
- g:对一行中所有的xxx进行替换;s:表示作用于指定的行;%s:表示作用于所有行
- .:表示当前行,$:表示最后一行
- 其中所有的/都可以换为#或者+,但是在单个最短指令中要统一。比如g/xxx/ s//hhh/g可以写为:g/xxx/ s##hhh#g 、g+xxx+ s//hhh/g 、 g#xxx# s++hhh+g等形式。因为实质上,g/xxx/ s//hhh/g相等于两条指令,g/xxx/和s//hhh/g。其中,g/xxx/表示列出有xxx的行,s//hhh/g表示替换g/xxx/命令查找到的内容。
对指定行进行替换
[ start_line:缺省值为当前光标所在行] [,] [ end_line:缺省值为当前光标所在行] s/ [缺省值为最近一次查找操作所查找的内容,比如g/xxx/中的xxx或者/ok中的ok]/ [没有内容就是用空值覆盖]/ [g]
s/xxx/hhh/ = .s/xxx/hhh/ 将光标所在行的第一个xxx替换为hhh
s/xxx/hhh/g 将光标所在行的所有xxx替换为hhh
2s/xxx/hhh/ 将第二行的第一个xxx替换为hhh
$s/xxx/hhh/ 将最后一行的第一个xxx替换为hhh
2,6s/xxx/hhh/ 将第二行到第六行中每一行的第一个xxx替换为hhh
.,6s/xxx/hhh/ = ,6s/xxx/hhh/
2,.s/xxx/hhh/ = 2,s/xxx/hhh/
2,$s/xxx/hhh/
.,$s/xxx/hhh/
对所有行进行替换
%s/xxx/hhh 将所有行中每行第一个xxx替换为hhh
%s/xxx/hhh/g 将文中所有的xxx替换为hhh
另辟蹊径
[g]/[查找的内容]/[backspace]s//[替换后的内容]/[g]
g/xxx/ s//hhh/ 将所有行中每行第一个xxx替换为hhh
g/xxx/ s//hhh/g 将文中所有的xxx替换为hhh
|