如何在 `: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
比如我有一些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