Vim下使用正则表达式
默认的vim正则字符设置是magic,关于magic的详细说明可以在vim下输入以下命令查看
:help magic
magic状态下$ ^ . * \字符是有魔法(特殊含义)的,也就是说想匹配星号 * 的话需要用反斜杠来转义 即 \*匹配星号 而*则是一个量词.当然vim允许根据个人喜好使用特殊含义字符,只需要在正则表达式前面加上\v \V \m \M来说明跟在后面的使用哪种魔法属性就好了。下面贴几个vim里面比较常用的正则命令
删除所有只有空白的行
:g/^$/d
把多个空格替换为一个空格 *前面是2个空格, //中间是一个空格
:%s/ */ /g
查找俩个单引号括起来的小写字母如 'a' 'b'
/'[a-z]'
把所有单词中间的as替换为AS 如case变成cASe lass变成lASs 但是 as well as不变
:%s/\(\a\a*\)as\(\a\a*\)/\1AS\2/g
或者
:%s/\(\a\+\)as\(\a\+\)/\1AS\2/g
把行末的所有空格和制表符删除
:%s/\s\+$//g
给所有单词后面紧跟的圆括号前加一个空格 如main(void)变成main (void)
:%s/\(\w\)(/\1 (/g
把<>改成“”,比如#include <hola.h>改成#include "hola.h"
:s/<\([^>]*\)>/"\1"/