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

Vim如何用单条命令实现JSON值的下划线转空格与首字母大写格式化

Vim 单命令批量格式化JSON大写value方案

需求说明

保留JSON键名不变,将冒号后下划线分隔的全大写value转换为空格分隔、每个单词仅首字母大写其余小写的标题格式:

原格式示例:

"ASDF": "TUOJKLDSF",
"ASDF": "TUOJKLDSF_FUGZIHOJKOWG",
"ASDF": "TUOJKLDSF_FUGZIHOJKOWG_IKEH",
"ASDF": "TUOJKLDSF_FUGZIHOJKOWG_IKEH_SDF",

目标格式示例:

"ASDF": "Tuojkldsf",
"ASDF": "Tuojkldsf Fugzihojkowg",
"ASDF": "Tuojkldsf Fugzihojkowg Ikeh",
"ASDF": "Tuojkldsf Fugzihojkowg Ikeh Sdf",

解决方案

直接执行以下单条Vim全局替换命令即可完成全量处理:

:%s/: "\zs[A-Z_]\+\ze"/\=substitute(substitute(tolower(submatch(0)), '_', ' ', 'g'), '\v<(.)', '\U\1', 'g')/g

命令逻辑说明

  • 匹配阶段:用\zs和\ze锚定操作范围,仅匹配:"和闭合双引号之间的全大写+下划线内容,完全不会修改前面的JSON键名
  • 替换阶段使用Vim表达式替换功能\=处理匹配到的value:
    1. 先把整个value转换为全小写,同时将下划线替换为空格
    2. 匹配每个单词的首字母转换为大写,自动完成标题格式转换
      该命令支持任意数量下划线分隔的value,不需要按单词数量编写多条替换规则。

内容的提问来源于stack exchange,提问作者jeffrey.d.m

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:54:04