vim - 我可以在 Vim 中搜索和替换为数学表达式吗?
问题描述
我有以下一行:
set_property LOC DSP48E2_X0Y0 [get_cells{name[0].dut/mm1/dsp_chain[0].dsp_inst}];
我想替换DSP48E2_X0Y{number}
为DSP48E2_X0Y{number+5}
我在 Stack Overflow 上关注了一个线程,并尝试使用 awk 命令:
echo "set_property LOC DSP48E2_X0Y0 [get_cells {name[0].dut/mm1/dsp_chain[0].dsp_inst}];" | awk `{ printf "%s %s %s_X%dY%d", $1, $2, $3, $4, $5+5}`
但我收到错误:
bad math expression: operand expected at `,'
解决方案
要回答标题中的问题:是的,只需以\=
.
在你的情况下,
:s/DSP48E2_X0Y\zs\d\+/\=submatch(0)+5/
会做的。
(不知道那些 awk 的东西是关于什么的。)
推荐阅读
- c - 链表-基本插入函数
- javascript - 带有对象参数的 React 函数抛出了一个意外的标记
- pandas - 在python3中查找忽略年份的两个日期之间的差异
- matlab - 如何创建划分为单元格的图像的梯度局部三元模式的直方图和特征向量
- c# - C# 重载 IEnumerable 键/值类型和非键/值
- java - 如果使用 MultipartFile,则有效注释不适用于 Object
- java - UnhandledAlertException : 元素可以被执行但在系统中没有被点击
- c# - 发布在 C# .net framework 4.6 中开发的 Web API 的命令
- python - Python 循环变量名
- angular - 如何删除在使用 Angular 2 动画时自动添加的 ng-tns 类