Basically, I would like to turn stuff like this:
<span style="font-size: 1.1rem;">Lorem ipsum</span>
into this:
Lorem ipsum
In a whole document.
What's the fastest way of doing this with Vim?
Basically, I would like to turn stuff like this:
<span style="font-size: 1.1rem;">Lorem ipsum</span>
into this:
Lorem ipsum
In a whole document.
What's the fastest way of doing this with Vim?
如果您想删除所有<span ..>
标签并保留内容,您可以:
:%s/<span[^>]*>\([^<]*\)<.*/\1/
如果你只是想对那些<span..
有确定的人进行替换style=".."
,你可以复制<span style="font-size: 1.1rem;">
之前的放置\([^<]*\).....
如果您的文件是 xml 格式,并且您的 vim 配备了 xml 插件,您可以使用宏(或:g
),使用 xml 插件,<localleader>d
删除周围的标签并保留文本值。
类似的东西
:%s/<span style="[^"]*">\([^<]*\)<\/span>/\1/g
应该做的伎俩。不过,我不太确定您是否需要转义捕获括号。
(感谢Birei的逃脱)
你可以使用vim surround
插件Tim Pope
。它非常适合您的需求。
Surround.vim 是关于“环境”的:圆括号、方括号、引号、XML 标签等等。该插件提供映射以轻松地成对删除、更改和添加此类环境。
要在正常模式下达到相同的效果,您可以:
将光标放在配对标签的第一个和最后一个括号之间的某个位置,然后将标签内的内容复制到寄存器中让我们说p
:
"pyit
然后删除整个对标签:
dat
然后粘贴p
寄存器中的内容:
"pp
这种方法的优点是它适用于所有对标签。当记录为宏时,您只需找到标签并运行宏即可摆脱许多不同的标签。
:%s/<span style="font-size: 1.1rem;">Lorem ipsum<\/span>/Lorem ipsum/g
谢谢