7. 快速修复

在 C 语言编程中,人们经常会经历编辑-编译-编辑的循环。通常你会使用我之前提到的一些方法编辑 C 文件,保存文件,编译代码,然后定位到错误并再次开始编辑。VIM 通过一种名为快速修复的模式,稍微缩短了这个循环的时间。基本上,你需要将编译器错误保存在文件中,并使用以下命令在 VIM 中打开该文件

	 $ vim -q compiler_error_file
      

VIM 会自动打开包含错误的文件,并将光标定位到第一个错误的位置。

这个循环有一个快捷方式。使用 “make” 命令,可以自动编译代码并跳转到第一个错误发生的位置。要调用 make 命令,请输入以下内容

	 :make
      

基本上,这个命令在 shell 中调用 make 并跳转到第一个错误。但是,如果你不使用 make 编译,而是使用像 cc 这样的命令编译,那么你必须将名为 makeprg 的变量设置为当你使用 make 命令时想要调用的命令。例如: :set makeprg=cc\ foo.c

设置 makeprg 后,你就可以直接调用 make 命令,快速修复功能就会生效。

在你纠正了第一个错误之后,下一步就是转到下一个错误并纠正它。以下命令用于转到下一个错误: :cn

要返回上一个错误,你可以使用命令 :cN

让我用一个例子来演示一下。考虑以下代码

图 11. 快速修复程序列表

正如你所看到的,第 5 行有一个错误。该文件保存为 test.c,并且 makeprg 使用以下命令设置

	 :set makeprg=gcc\ test.c
      

接下来,使用命令 :make 调用 make 命令。gcc 给出了一个错误,make 命令的输出如下所示

图 12. :make 错误

按下 RETURN 键后,光标会移动到第 6 行。

现在,命令 :cn 会将光标移动到第 4 行。

要返回到上一个错误,可以使用命令 :cN,光标将移回第 6 行。

在纠正了第 5 行的错误并添加了 “return 1;” 之后,可以再次运行 :make,输出将是

图 13. 没有错误

这只是一个小例子。你可以使用快速修复来解决你的编译时问题,并有望减少编辑-编译-编辑的循环。