替换
-
语法
:[range] s/{old-pattern}/{new-pattern}/[flags]
- range确定范围,不写默认为当前行。
% # 表示整个文件内容 . # 表示当前行 $ # 表示最后一行 m,n # 表示从第m行到第n行 ,n # 表示从当前行到第n行 n, # 表示从第n行到当前行 n # 指定行 +n # 表示当前行之后的n行
-
old-pattern为要被替换的字符串,new-pattern为替换后的新字符串。替换操作与搜索操作使用同样的模式串系统。
-
flags为替换标志位,默认为指定范围内的行的第一次匹配的位置,帮助文档
:h s_flags
,常用标志如下:
g:global,表示在指定范围内执行全局操作,替换所有匹配项 c:confirm,可以确认或拒绝修改 n:number,报告匹配到的次数,不替换,可用来查询匹配次数 i:执行不区分大小写的替换 I:执行区分大小写的替换 e:防止替换失败时显示错误消息
-
举例
:% s/原文本/目标文本/g # 全局替换,将原文本全部替换为目标文本 :% s/原文本/目标文本/ # 每行第一次匹配原文本的地方替换为目标文本 :% s/文本//n # 统计指定文本在文件中出现的次数 :% s/^/# /g # 每行的行首添加注释符# :% s/^/\/\/ /g # 每行的行首添加注释符//
-
结合正则表达式
:范围 s/\<文本\>/目标文本/标志 # 精确匹配指定文本,排除掉仅仅只是包含指定文本的地方 :% s/\<if\>/must/g
版权声明:本文为weixin_43971252原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。