【发布时间】:2013-10-06 11:50:09
【问题描述】:
场景:我在我的源代码上运行了一个静态代码分析工具,发现我的许多文件存在问题。
问题在于声明
*retval = -1;
需要替换为
if(retval != NULL)
{
*retval = -1;
}
我已经设法在errorfile 中找到所有相关位置并开始循环
这个工作流程可以做到,但我有 400 个地方要触摸,所以有点无聊。
我可以指示 Vim(类似于 bufdo)更正错误文件中所有位置的语句吗?
不,简单地打开所有文件和bufdo then 不是一个选项,因为*retval = -1; 结构多次出现,但只需要修复错误文件中包含的行。
【问题讨论】:
-
这里的问答非常相关:stackoverflow.com/q/5686206
-
在核心 Vim 中甚至还有 a patch pending 和
:cdo,所以如果你觉得特别慈善,你也可以在那里投票。 -
如果静态分析工具能够发现这些问题,您应该能够通过语义补丁自动修复它。例如。 coccinelle 有几个示例补丁可以修复
NULL取消引用:link
标签: vim