1 语法
- :[range]s/source/target/[option]
- 2 range
range 表示要替换的范围, 想要全局替换的话, 可以使用一个百分号.
:%s/xxx/xxxx
另外, 小数点表示当前行, 美元符号表示最后一行, 数字表示范围.
:1,.s 替换第一行到当前行
:.,$s 替换当前行到最后一行
:1,$s 替换第一行到最后一行, 相当于 :%s
3 source 与 target
表示源字符串与目标字符串, 如
:1,.s/123/456
表示把第一行到当前行的首次出现的 123 替换成 456, 注意是首次出现, 如果要替换某一行全部源字符串需要在后面加上
/g
另外, 对于一些特殊字符比如小数点, 斜杠, 双引号等需要转义, 方式是使用反斜杠, 在需要转义的字符面前加一个反斜杠
如把
"123//"
替换为
'123\\'
命令如下:
:s/\"123\/\/\"/\'123\\\\\'/g
因为
"123//" 中
"转义为 \"
/ 转义为 \/
'123\\' 中
'转义为 \'
\ 转义为 \\
4 option
选项如下:
/g 全局替换
/c 确认
/p 替换结果逐行显示
注意选项的组合结果是
/cg /pc
这样的形式, 而不是
/c/g /g/p
这样的形式.
5 总结
全局替换的话, 使用
:%s/source/target/g
局部替换的话, 使用
:n,ms/source/target
n,m 为行数, 表示要替换的范围.
注意如果字符串需要转义要加上反斜杠.
来源: http://www.bubuko.com/infodetail-3377849.html