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

Vim如何匹配```json块内容删除标记并为每行添加缩进?

解决方案

这里提供两种可直接使用的实现方案,均支持处理文件中存在多个JSON代码块的场景:


方案1:单次替换命令(一步完成)

直接在Vim中执行以下命令即可:

:%s/```json\(\_.\{-}\)```/\=substitute(submatch(1), '^', '    ', 'mg')/g
  • 逻辑说明:
    • 外层匹配逻辑和你已经实现的一致,非贪婪捕获```json到```之间的所有内容
    • 内层substitute()处理捕获到的JSON内容,m标志开启多行匹配模式,让^匹配每一行的行首,批量给所有行开头添加4个空格

方案2:分步操作(逻辑更清晰,不易出错)

分两步执行,适合日常手动操作:

  1. 给所有```json和```标记中间的内容行,每行开头加4个空格:
:g/```json/+1,/```/-1 s/^/    /
  1. 删除所有的```json和```标记行:
:g/```json\|```/d

两种方案最终输出和你给出的预期效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:54:00