转载:http://liuzhijun.iteye.com/blog/1827901,作者–zhijun
vim可以借用正则表达式来实现丰富的替换功能,她的基本语法是:
:[addr]s/源字符串/目的字符串/[option]
,我们可以看出addr和option是可以缺省不填的,他们各个字段的意思是:
- [addr]代表检索范围,缺省表示当前行,1,10表示1到10行,%代表整个文件等价于1, ,而., 代表当前行到文件末尾
- s代表替换的意思
- option代表操作类型,缺省只对第一个匹配的字符进行替换,g代表全局替换,c代表操作时确认,gc可以组合使用
以下提供几个例子:
:s/aa/bb/g 将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb
:%s/aa/bb/g 将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb
:12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb
:%s/^/#/ 全文的行首加入 # 字符,批量注释的时候非常有用
:%s= *$== 将所有行尾多余的空格删除
:g/^$/d 这里的g表示对文章中所有符合要求字符串执行替换操作,^表示行首,$表示行尾,整个意思是:将所有的空行删除