如何使用vim批量删除SVG文件中所有<text>标签及其包含内容
Vim删除SVG中所有标签的单行命令
适用场景
针对仅包含<text>、<path>两类标签的大体积SVG文件,批量删除所有<text>标签及其包裹的全部内容,保留所有<path>标签正常可用。
最终命令
优先推荐(大文件效率更高)
:g/<text\>/,/<\/text\>/d
命令说明:
- 全局定位所有
<text>标签的起始行,自动选中从起始行到对应</text>结束行的全部区间 - 行级范围删除操作无需复杂正则匹配,处理GB级大文件也不会出现卡顿
- 自动适配带属性的
<text>标签(如<text id="title" fill="#000">),不会出现匹配遗漏
特殊场景适用(单行混合多标签情况)
如果你的SVG存在同一行内同时有<text>标签和其他标签内容的情况,用跨行正则替换命令:
:%s/<text\s*\_.\{-}<\/text>//g
命令说明:
\_.匹配包括换行符在内的任意字符\{-}启用非贪婪匹配,避免跨多个<text>标签误删中间的<path>内容
内容的提问来源于stack exchange,提问作者user69136
相关产品推荐
相关产品推荐

