我要剪切的文件的一部分
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
表示删除行。
在帮助中查看更多内容:
PS:如果你的pattern不在一行,可以试试
:%s/^HTMName=\(\_.\{-}\)HTMFile=\|.*/\1/
关于regex - Vim 替换 : Delete All between specified words,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40925298/