vim - 仅在特定位置在 VIM 中搜索和替换
问题描述
我有一个.json
文件,我想搜索并替换}
为},
. 但是,我只想在我有 text 的情况下应用它"item_secret": "98ax3fsrv"}
。字符串98ax3fsrv
的长度和内容都不同。所以我实际上正在寻找类似的东西"item_secret": "%s"}
并将其替换为"item_secret": "%s"},
.
有没有办法在哪个字符串组合之后应用这个搜索和替换?
解决方案
想到了两种不同的方法:
1.
:%s/"item_secret": ".*"}/&,
只是一个简单的搜索和替换。在此,&
表示"item_secret": ".*"
匹配的整个字符串。如果后面的行可能有更多引号"98ax3fsrv"
,您可能需要
:%s/"item_secret": "[^"]*"}/&,
或者
:%s/"item_secret": ".\{-}"}/&,
2.
:g/item_secret/norm A,
我更喜欢这种方式。它说“在每一行匹配item_secret
,运行命令normal A,
”,它在行尾进入插入模式并附加一个逗号。这只有在到处都出现}
行尾时才有效。item_secret
推荐阅读
- node.js - npm 启动错误并出现 ERR!代码 ENOENT,系统调用打开
- python-3.x - 如何使用内置的`slice`访问二维数组中的二维块?
- c# - 使用 IdentityServer4 不记名令牌调用 .NET 框架 API 时出现 SecurityTokenInvalidAudienceException
- python - 逻辑回归 - 添加附加参数时决策边界的奇怪行为
- python - 如何在请求 python 中调用 post api?
- android - 如何制作具有四个象限和中间一个圆圈的 android 布局
- sql - 为 SQL 表中的每个部门插入两个具有唯一 ID 和值的新行
- javascript - 使用 React Native 创建 apk 的问题
- react-native - 使用 react-native 在 Firebase 实时数据库中插入数据
- perl - Dancer2::Plugin::Redis 中“重试”和“每个”配置参数的意义是什么