附加到vim匹配正则表达式中的行

附加到vim匹配正则表达式中的行,vim,vi,ex,Vim,Vi,Ex,我有一个json文件,我在使用vim时运行了查找和替换,但是我忘记了一行末尾的, ... "id":41483 "someName":"someValue", ... 使用vim,如何将,附加到与\“id\”\:[0-9].$匹配的每一行?试试这个。匹配id后跟任意字符的所有内容,直到结束。将其替换为匹配组(用括号匹配),该组在替换段中由\1表示 %s/\(id".*\)$/\1,/g 另一种方法是使用全局命令和普通命令 :g/"id":[0-9]/norm A, 全局命令在与“id”:[

我有一个json文件,我在使用vim时运行了查找和替换,但是我忘记了一行末尾的

...
"id":41483
"someName":"someValue",
...

使用vim,如何将
附加到与
\“id\”\:[0-9].$
匹配的每一行?

试试这个。匹配id后跟任意字符的所有内容,直到结束。将其替换为匹配组(用括号匹配),该组在替换段中由\1表示

%s/\(id".*\)$/\1,/g

另一种方法是使用全局命令和普通命令

:g/"id":[0-9]/norm A,
全局命令在与
“id”:[0-9]
匹配的每一行上运行
norm A,
<代码>规范A,在正常模式下运行
A,
,即在行尾追加一个

...
"id":41483
"someName":"someValue",
...

看看
:help:global
:h:normal

,但是捕获组呢?将
\1
添加到附加文本时,它会按字面意思附加。@radlan这里没有捕获组?在您的示例中没有(事实上,在原始问题中也没有)。但是,如果正则表达式包含一个捕获组,我希望我可以将其用于附加文本。@radlan您需要在中使用答案。我不认为环球可以有捕获组。