搜索并替换为命令的结果

在 vim 中,我想搜索和替换文本。但我想用命令的输出替换它。

鉴于文本:

{ "_template": "foo" }
{ "_template": "foo" }

我想搜索并替换它成为:

{ "_id": "239c55fd-538e-485f-8588-83d9735b6819" }
{ "_id": "2ae9f49f-244c-47b0-8f0f-c6c46e860af3" }

后者是 unix/linux 命令的结果uuidgen

它看起来像s:/"_template": "foo"/"_id": "<uuidgen>"/,但我不确定在<uuidgen>. 命令 uuidgen 只是一个示例,但它将是一个不带参数且不需要传入任何标准输入的命令(例如wc左右)。

它需要为每次搜索/替换再次调用命令。

这对vim有可能吗?或者我应该更好地使用 sed 和/或 awk 吗?

回答

哼...

类似的东西?

:s/"_template": "foo"/='"_id": "'.trim(system('uuidgen')).'"'

关键是 :s-=


以上是搜索并替换为命令的结果的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>