如何在":global"中使用"norm"之后的另一个命令



例如,我有一些HTML<p>,其中有几个句子,并且想要提取内容,并将每个句子放在自己的行中。我希望对中的所有段落执行一个命令
因此来自:

<p>Hello. This is Alan. I am a wookie.</p>
<p>Hello. This is Bob. I am an ewok.</p>

我想得到:

Hello.
This is Alan.
I am a wookie.
Hello.
This is Bob.
I am a ewok.

我可以通过运行:g/<p>/norm ditVp来提取所有<p>内容。我还可以将光标放在这样提取的段落中,并运行:s/.s?/.r/g来将它们全部拆分。如何将其合并到一个命令中?

通常,当我们想在一行中有多个命令时,我们会使用|
但您正在执行:g,然后在其中执行:norm。正如我们在:h :bar中所读到的,他们都将|作为自己的论据。在这种情况下,我们使用:execute
由于我们希望:s:g的一部分,因此我们将把:norm封装在:exec中,如下所示:

:g/<p>/exec "norm! ditVp" | s/.s?/.r/g

相关内容

最新更新