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

如何在Vim中给列表内的单词添加引号?

用Vim快速给列表元素添加双引号的方法

当然可以!Vim的正则替换功能刚好能完美解决这个问题,我给你分享几种高效的实现方式:

方法1:全局一键替换(最推荐)

直接在命令模式下输入这条替换命令:

:%s/[^,\[\]]\+/"&"/g

命令解析:

  • %:表示对整个文件内容进行操作(如果只是处理单行,把%换成对应行号即可)
  • s:启动替换模式
  • [^,\[\]]\+:匹配除了逗号、左右方括号之外的任意长度字符,不管元素是单个单词(比如torunn)还是带空格的短语(比如phil coulson)都能精准命中
  • "&":把刚才匹配到的内容用双引号包裹起来(&代表匹配到的原文本)
  • g:全局替换,一次性处理所有符合条件的元素

方法2:带确认的替换(适合怕误改的场景)

如果你想逐个确认每一处替换,避免误操作,就在命令里加个c选项:

:%s/[^,\[\]]\+/"&"/gc

执行后Vim会逐个询问你是否替换,按y确认、n跳过、a直接全部替换、q退出替换流程。

方法3:可视模式局部替换

如果你的列表只是文件中的一小部分,不想全局替换,可以用可视模式选中目标内容:

  1. 把光标移到列表的左括号[后面,按v进入可视模式
  2. 拖动光标选中所有元素(到右括号]前面为止)
  3. 输入命令:
:'<,'>s/[^,\[\]]\+/"&"/g

这里的'<,'>代表你刚才选中的可视区域,只会替换选中范围内的内容。

效果演示

输入命令前:

[torunn,sentry,moonstone,avispa,phil coulson]

输入命令后:

["torunn","sentry","moonstone","avispa","phil coulson"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 09:02:07