我想使用vim向列表中的对象添加新字段。每个对象的行数不相同。但是,每个对象的最后一个字段是相同的。在VIM中录制宏时搜索字符串
新字段对于每个对象都是相同的,所以我想我可以创建一个vim宏,它将在每个对象的末尾插入静态字段,并在前一行插入一个逗号。我的问题是,我无法在宏记录器中执行字符串搜索,但是。
这里是什么,我试图完成一个例子:
Input: [ { "prop1": 10, "prop2": 30, "last": 99 }, { "prop1": 80, "last": 10 }, { "propA": 33, "propB": 90, "propC": 38, "last": 100 } ]
Desired Output: [ { "prop1": 10, "prop2": 30, "last": 99, "new": 0 }, { "prop1": 80, "last": 10, "new": 0 }, { "propA": 33, "propB": 90, "propC": 38, "last": 100, "new": 0 } ]
我试图通过键入以下到VIM来实现:q q /last ENTER $ a , ESC p q
。我已将"new: 0
复制到我的剪贴板。看起来搜索部分不工作,因为每次运行宏时,都会粘贴光标开始的行而不是行上的下一个字符串“last”。
谢谢你的解决方案的关键。我尝试了你提供的同一个宏,但是我意识到虽然在vi模式下它不能在Sublime Text中工作,但是它在我在unix终端中运行vi时起作用。我会接受你的回答,因为它确认了我最初的尝试,并说服我在终端试用。 –
**宏是为了在vi/vim **中运行。如果你想在崇高使用它是一个**不同的编辑器**,你需要检查绑定,并知道什么是支持和什么不是复古包。那时你可以知道并理解它为什么不起作用。 –