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