我要剪切的文件片段

HTMName=[...] owns the means of production. Proletariat do not and sell their labor power.
HTMFile=x
ClickPlay=0
TestElement=0

Type=HTML
Cors=123
DisplayAt=215
Hyperlink=0
HTMName=Bourgeois
HTMFile=x
ClickPlay=0

最终结果
[...] owns the means of production. Proletariat do not and sell their labor power.
Bourgeois

我知道文件的顶部和底部会有余数。
我尝试了以下
:s%/^\sHTMFile[\s\S]*\n\s*HTMName=$//g

还有许多其他变体,均未找到任何模式。我对正则表达式的掌握非常薄弱。

最佳答案

首先,我将删除所有不包含搜索模式的行(在行首添加HTMName=),然后删除搜索模式

:v/^HTMName=/d
:%s///
:v表示在{pattern}(在本行开头为“HTMName =”)不匹配的行上执行命令(在本例中为“:d”)。
:d表示删除行。

查看更多帮助:
  • :help :v
  • :help :d

  • PS:如果您的模式不只是一行,则可以尝试
    :%s/^HTMName=\(\_.\{-}\)HTMFile=\|.*/\1/
    

    10-02 07:21