编辑器中使用 s 命令替换字符小结
说明:命令前的“:”符号为命令行模式下输入。
一、常用替换方法
:s/src/dest/ 替换当前行第一个 src 为 dest 。
:s/src/dest/g 替换当前行所有src 为dest (g表示全局的) 。
:n,$s/src/dest/ 替换第 n 行开始到最后一行中每一行中第一个 src 为dest 。
:n,$s/src/dest/g 替换第 n 行开始到最后一行中每一行中所有src 为 dest。
:%s/src/dest/等同于 :g/src/s//dest/ 替换每一行中第一个 src 为 dest 。
:%s/src/dest/g等同于 :g/src/s//dest/g 替换每一行中所有 src 为 dest 。
注释:
1、n 为行号值,若 n 为“ .”,表示从当前行开始到最后一行 。
2、g 放在命令末尾,表示对目标字符串的每次出现都进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对当前文档中所有包含 目标字符串的出现进行替换操作
二、替换符号“/”:
1、使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
例: :s#src/#dest/# 替换当前行第一个 src/ 为 dest/ 。
如果果想全局替换,可以用 :%s#xxx#xxx#。
2、使用+作为分隔符
:s+/str1/str2/+/str3/str4/+ 把 /str1/str2/替换成/str3/str4/。
若想全局替换,使用%s。
三、替换时添加加换行:
示例:
int fun( int a, int b, int result ){ return result; }
修改为以下格式:
int fun( int a, int b, int result )
{
return result;
}
可以使用如下命令:
:’<,’>s/{ return result;}/\r{\r\treturn result;\r}/g
即在替换一些特殊符号如 * 号时可以在其前面加转义字符“\”。