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

How to use another command after `norm` in `:global`?

比如我有一些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