gpt4 book ai didi

vim - 在 vim 中搜索并替换为增量

转载 作者:行者123 更新时间:2023-12-04 01:10:46 26 4
gpt4 key购买 nike

我有一个 json 文件,如下所示:

{
"pk": 1,
"model": "model.Model",
"fields": {
"data1": "example",
"data2": "example"
}
},
{
"pk": 1,
"model": "model.Model",
"fields": {
"data1": "example",
"data2": "example"
}
},
{
"pk": 1,
"model": "model.Model",
"fields": {
"data1": "example",
"data2": "example"
}
},

等....

我想搜索并替换 "pk": 1 并增加值。所以我的文件看起来像:

{
"pk": 1,
"model": "model.Model",
"fields": {
"data1": "example",
"data2": "example"
}
},
{
"pk": 2,
"model": "model.Model",
"fields": {
"data1": "example",
"data2": "example"
}
},
{
"pk": 3,
"model": "model.Model",
"fields": {
"data1": "example",
"data2": "example"
}
},

到目前为止我已经尝试过:

:设i=1 | g/"pk": 1/s//="pk": .i./|让 i=i+1

搜索 "pk": 1 模式并使用计数器替换它,但我在某处有语法错误并且碰壁了。

非常感谢任何帮助/建议。

最佳答案

你可以试试:

:let i=1 | g/"pk": \zs\d\+/ s//\=i/ | let i+=1

\zs .............. start pattern

要解决您的尝试,请执行以下操作:

:let i=1 | g/"pk": 1/s//\='"pk": ' .i/ | let i=i+1

如您所见,第一个错误是替换部分 \= 中缺少反斜杠。第二个是在 . 末尾使用第二个连接,这将使 vim 尝试连接变量与任何内容。第三个是忘记将 "pk": 放入“单引号”中,否则您最终会得到不带引号的 pk。请记住,我们在这里连接一个字符串和一个数字。

关于vim - 在 vim 中搜索并替换为增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64900311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com