0

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?

4

5 回答 5

3

如果您想删除所有<span ..>标签并保留内容,您可以:

:%s/<span[^>]*>\([^<]*\)<.*/\1/

如果你只是想对那些<span..有确定的人进行替换style="..",你可以复制<span style="font-size: 1.1rem;">之前的放置\([^<]*\).....

如果您的文件是 xml 格式,并且您的 vim 配备了 xml 插件,您可以使用宏(或:g),使用 xml 插件,<localleader>d删除周围的标签并保留文本值。

于 2013-06-30T11:40:16.550 回答
2

类似的东西

:%s/<span style="[^"]*">\([^<]*\)<\/span>/\1/g

应该做的伎俩。不过,我不太确定您是否需要转义捕获括号。

(感谢Birei的逃脱)

于 2013-06-30T10:28:32.847 回答
2

你可以使用vim surround插件Tim Pope。它非常适合您的需求。

Surround.vim 是关于“环境”的:圆括号、方括号、引号、XML 标签等等。该插件提供映射以轻松地成对删除、更改和添加此类环境。

http://github.com/tpope/vim-surround

于 2013-07-01T09:47:36.313 回答
1

要在正常模式下达到相同的效果,您可以:

将光标放在配对标签的第一个和最后一个括号之间的某个位置,然后将标签内的内容复制到寄存器中让我们说p

"pyit

然后删除整个对标签:

dat

然后粘贴p寄存器中的内容:

"pp

这种方法的优点是它适用于所有对标签。当记录为宏时,您只需找到标签并运行宏即可摆脱许多不同的标签。

于 2013-07-01T09:14:42.723 回答
-2
:%s/<span style="font-size: 1.1rem;">Lorem ipsum<\/span>/Lorem ipsum/g

谢谢

于 2013-06-30T10:21:17.470 回答