1

场景:我在我的源代码上运行了一个静态代码分析工具,它在我的很多文件上发现了一个问题。

问题是声明

*retval = -1;

需要替换为

if(retval != NULL)
{
    *retval = -1;
}

我已经设法在错误文件中包含所有相关位置开始循环

这个工作流程做到了,但我有 400 个地方要触摸,所以有点无聊。

我可以指示 Vim(类似于 example bufdo)更正错误文件中所有位置的语句吗?

不,简单地打开所有文件bufdo然后不是一个选项,因为该构造*retval = -1;发生了多次,但只需要在错误文件中包含的行上进行修复。

4

2 回答 2

4

使用宏:

  1. 转到第一个错误
  2. 按下qq可录制宏q以在寄存器
  3. 修复那个错误
  4. 保存缓冲区
  5. 执行:cn到下一个错误
  6. 按下q以完成录制宏

现在,您可以输入100@q- 这将执行步骤 3-5 100 次。但它不会是 100 次 - 在某些时候它会到达错误列表的末尾并失败。到那时,所有的错误都将被修复(现在......)

于 2013-09-30T14:53:03.847 回答
2

你可以使用宏。只需键入qqthen do your :cnand fix 代码,保存,然后键入q1000@q.

于 2013-09-30T14:53:20.363 回答