如何在Vim中完成指定的带括号内容查找替换操作?
Vim 文本替换实现方案
直接使用带捕获组的正则替换命令即可完成需求,命令如下:
:%s/^\s*,*\[\(\w\+\)\]/& = @\1
各部分含义:
^:匹配行首位置\s*:匹配行首任意数量的空白字符(包含制表符),*:匹配行首任意数量的逗号(允许0个)\[:匹配左方括号(因方括号是正则特殊字符,需转义)\(\w\+\):捕获方括号内的单词内容(如One、Two),作为第一个捕获组\]:匹配右方括号&:指代整个匹配到的原行内容(比如[One]或,[Two])= @\1:在原内容后追加指定格式文本,\1调用之前捕获的方括号内的内容
替换前后对比
原文本:
[One] ,[Two] ,[Three]
替换后文本:
[One] = @One ,[Two] = @Two ,[Three] = @Three
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

