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

Append to line in vim matching regex

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

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

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

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

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

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

:g/"id":[0-9]/norm A,

全局命令在匹配 "id":[0-9] 的每一行上运行 norm A,norm A, 在正常模式下运行 A,,即在行尾附加一个 ,

看看 :help :global:h :normal