You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Vim的:global命令中执行norm后如何追加运行其他命令

Vim 批量提取<p>标签内容并拆分句子的命令合并方案

需求说明

现有若干包含多句文本的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/<p>/norm ditVp | s/\.\s\?/.\r/g

如果Vim环境中|存在映射冲突,也可以使用execute写法保证兼容性:

:g/<p>/execute "normal! ditVp" | s/\.\s\?/.\r/g

实现逻辑

:g 全局命令会匹配所有包含<p>的行,对每一行先执行normal模式下的标签内容提取操作,紧接着对当前处理的内容执行句子拆分替换,无需分步操作。

内容的提问来源于stack exchange,提问作者Oragon Efreet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:36:03