Regex 替换命令中的gvim not运算符

Regex 替换命令中的gvim not运算符,regex,vim,Regex,Vim,我有许多文件看起来像下面的一个: HR0100001012010093001 EF0000120100930000000 HR0200001012010093001 EF0000120100930000000 HR0900001012010093001 EF000012010093000000 HR1000001012010093001 EF000012010093000000 HR1100001012010093001 text EF000012010093000000 HR120000101

我有许多文件看起来像下面的一个:

HR0100001012010093001
EF0000120100930000000
HR0200001012010093001
EF0000120100930000000
HR0900001012010093001
EF000012010093000000
HR1000001012010093001
EF000012010093000000
HR1100001012010093001
text
EF000012010093000000
HR1200001012010093001
EF000012010093000000
HR1300001012010093001
EF000012010093000000
HR0100001012010093001
text
EF0000120100930000000
HR2000001012010093001
EF000012010093000000
HR2200001012010093001
EF000012010093000000
我想去掉所有以HRxx开头,以EF*结尾的块,除了那些以HR01开头的块,即我想得到以下结果:

HR0100001012010093001
EF0000120100930000000
HR0100001012010093001
text
EF0000120100930000000
使用以下命令:

:%s/HR01\_.\{-}EF.*$//g
我可以删除我正在搜索的行;作为最后一步,我想使用“Not操作符”来反转结果,从而得到我实际需要的行。不幸的是,我不知道怎么做

非常感谢您的帮助

谢谢, Francesco找到了解决方案:

%s/HR\(01\)\@!\_.\{-}EF.*$//g