:s/str1/str2/ 替换当前行第一个 str1 为 str2
:s/str1/str2/g 替换当前行所有 str1 为 str2 ( 注意, s/xx/xxx/g 语句从s开始,中间的空格视作字符串的一部分)
:n,n2 s/str1/str2/ 替换第 n 行开始到第n2行中每一行的第一个 str1 为 str2
:n,n2 s/str1/str2/g 替换第 n 行开始到第n2行中每一行所有 str1 为 str2
n 为数字,若 n 为 .,表示当前行. 若 n2 为 $,表示最后一行.
:% s/str1/str2/ 替换每一行的第一个 str1 为 str2
:% s/str1/str2/g 替换每一行中所有 str1 为 str2
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#str1/#str2/# 替换当前行第一个 str1/ 为 str2/
总结上述替换命令:
1. 命令末尾的g:
加 g,表示对搜索字符串的每次出现进行替换;
不加 g,表示只对搜索字符串的首次出现进行替换;
2.多行替换:
句首加上: n,n2
3.全文替换:
句首加上: %
句首加上: 1,$
4. 使用#作为分隔符,可以让 / 也作为字符串的一部分.
使用/作为分隔符,可以让 # 也作为字符串的一部分.
它们正好互补.