i/vim 文件查找与替换 替换 语法为: :[addr]s/源字符串/目的字符串/[option] 全局替换命令为: :%s/源字符串/目的字符串/g [addr]表示检索范围,如: "1,n":表示从第1行到n行 "%":表示整个文件,同"1,$" ".,$":表示从当前行到文件尾 [addr]省略时表示当前行 s:表示替换操作,其为substitute的缩写 [option] : 表示操作类型,如: g:globe,表示全局替换 c:confirm,表示进行确认 p:表示替代结果逐行显示(Ctrl + L恢复屏幕) i:ignore,不区分大小写 [option]省略时仅对每行第一个匹配串进行替换 如果在源字符串和目的字符串中出现特殊字符,如'/','<','>',','等需要前面加反斜杠进行转义 常用命令示例: #将当前行第一个a替换为b :s/a/b/ #将当前行的所有a替换为b :s/a/b/g #将每行第一个a替换为b :%s/a/b #将整个文件的所有a替换为b :%s/a/b/g #将1至3行的第一个a替换为b :1,3s/a/b/ #将1至3行的所有a替换为b :1,3s/a/b/g 上面是一些常用的替换,但是我们日常碰到的问题不止这么简单,这就要涉及到一些较为高级的替换操作,会涉及到转义,正则表达式相关的知识,下面是一些例子: #使用#作为分隔符,此时中间出现的/不会作为分隔符,如:将当前行的字符串"a/"替换为"b/" :s#a/#b/# #找到包含字母a的行并删除 :g/a/d #删除所有空行 :g/^$/d #多个空格替换为一个空格 :s/ +/ /g #在正则表达式中使用和和符号括起正则表达式,即可在后面使用1,2等变量来访问和和中的内容,如下 将data1 data2修改为data2 data1 :s/w+w+s+w+w+/2 1
1、s/$// 在每一行后面追加空。 2、s为搜索。 如:s/a/b/ 搜索a将替换为b ,并只替换一次。 3、s/ *//g 将空格删除。 4、g代表搜索到的全部替换 。 5、“空格星”( " *") 代理多个空格。 6、/^$/d 删除空行。