vim - 如何定位所有出现的搜索字符串
问题描述
使用替换,我想替换
ones(var1.size,var2.size)
和
np.ones([var1.size,var2.size])
我尝试使用
%s/ones(\(\w\+\),\(\w\+\))/np.ones([\1,\2])/gc
然而,根据 Stack Overflow 上的其他帖子,Vim 无法找到所有出现的搜索短语。
它能够找到ones(3,1)
并将其更改为np.ones([3,1])
,但无法找到ones(1,xi.size)
。
我哪里错了?
解决方案
你太难了 下面是我如何弄清楚 Vim 将要做什么,并将其分解为更简单的步骤:
/ones(\(.\+\))
将选择括号内的内容,然后按Return以便 Vim 记住模式。
:%s//np.ones([\1])/
获取记住的模式并替换它。当然,事先根据需要调整您的标志。
简单匹配var1.size,var2.size
。
正则表达式非常强大,但也可能令人抓狂,因此请让它们尽可能简单,因为它们做错事情的可能性会随着复杂性的增加而增加。
推荐阅读
- php - 条件超链接列所需的语法
- python - 在 tkinter 中的帧之间切换。一个有标签,一个没有
- iterator - 如何在 Julia 1.0 中创建自定义迭代器?
- javascript - 命名空间(数字。*)列表是否有 Javascript 全局函数?
- angular - 在选择路由器链接时,所有设备的侧导航正在关闭
- jvm - Javamelody和同一节点中的多个应用程序和jvm
- c - C语言中需要变量声明吗?
- excel - 在excel中通过数据验证插入公式
- node.js - 使用 Node JS 更改 Markdown 文本中的图像源
- microsoft-graph-api - 没有 Files.Read 权限的图形 api 共享驱动器项目