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

问题描述 投票:0回答:3

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

,

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

使用 vim,如何在匹配

,
的每一行附加
\"id\"\:[0-9].*$

vim vi ex
3个回答
6
投票

试试这个。匹配所有有 id 后跟任何字符的东西直到最后。将其替换为匹配组(用括号匹配),在替换段中用 表示。

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

4
投票

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

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

全局命令在与

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

看看

:help :global
:h :normal


0
投票
:g:"id":s:$:,
  1. :g:"id"
    - 子字符串的全局搜索
    "id"
  2. :s:$:,
    - 与搜索模式匹配的行中将
    $
    (行尾)替换为
    ,
© www.soinside.com 2019 - 2024. All rights reserved.