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

Vim如何提取行内引号中的文本去引号后粘贴到行内指定位置

Vim实现该批量修改的最优方案

直接使用Vim内置的正则替换功能即可,无需额外插件,一行命令完成全文档修改:

:%s/^"\([^"]\+\)":\s*$/"\1": \1/g

命令说明

  • %:代表操作范围是当前文档的所有行,如果你只需要修改部分行,可以先进入可视模式选中目标范围,Vim会自动填充范围标识'<,'>,后续替换命令逻辑不变。
  • s/原模式/目标模式/g:Vim的替换语法,末尾的g代表本行内所有匹配项都替换,当前场景每行仅一个匹配,可省略。
  • 原模式^"\([^"]\+\)":\s*$:
    • ^匹配行开头,$匹配行结尾,确保只匹配完全符合结构的行
    • \([^"]\+\)是捕获组,提取双引号内部的所有内容
    • :\s*匹配冒号及冒号后所有的空白字符(包括空格、制表符、无字符的情况)
  • 目标模式"\1": \1:\1指代前面捕获组提取的内容,按照需求拼接成目标格式即可。

如果你的行内双引号内容仅包含字母、数字、下划线,也可以用更简化的版本:

:%s/^"\(\w\+\)":\s*$/"\1": \1/g

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 19:15:02