Xml 更换vim中的前后管柱
我有一个很大的XML文件,其中包含重要信息,不管作者出于什么愚蠢的原因决定这样做 它类似于以下内容:Xml 更换vim中的前后管柱,xml,vim,Xml,Vim,我有一个很大的XML文件,其中包含重要信息,不管作者出于什么愚蠢的原因决定这样做 它类似于以下内容: <book id="cat2" type="t" group="1234"> <!-- Group Name --> <book id='ABC123' type='s'/> <!-- NameOfBookHere --> <book id='etc456' type='s'/> <!-- Harry P
<book id="cat2" type="t" group="1234"> <!-- Group Name -->
<book id='ABC123' type='s'/> <!-- NameOfBookHere -->
<book id='etc456' type='s'/> <!-- Harry Potter -->
<book id='XYZ234' type='s'/> <!-- Jurassic Park --> //Notice variable space before the comment tag.
</book>
不幸的是,这会影响属性为组的
标记,这些标记不是自动关闭的
这意味着我剩下数千个自动关闭的
标记,它们不应该是自动关闭的xml标记。当然,手动移除它们是不可行的
是否有办法根据第一次更换影响的线路进行另一次更换?或者我的问题还有其他解决方案吗?在第一个捕获组中无需进行替换。只需使用\=
(使用magic
)<代码>\=
尽可能多地匹配0或1。类似于Perl的?
。e、 g.:%s\v(/=\>)…
:%s#\v(\>|/\>)\s*\<!--\s*(.{-})\s*--\># name="\2"\1#
:%s#\v(\>|/\>)\s*\<!--\s*(.{-})\s*--\># name="\2"\1#
:%s#\v(/?\>)\s*\<!--\s*(.{-})\s*--\># name="\2"\1#