在 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
让我用一个例子来演示一下。考虑以下代码
正如你所看到的,第 5 行有一个错误。该文件保存为 test.c,并且 makeprg 使用以下命令设置
:set makeprg=gcc\ test.c |
接下来,使用命令 :make 调用 make 命令。gcc 给出了一个错误,make 命令的输出如下所示
按下 RETURN 键后,光标会移动到第 6 行。
现在,命令 :cn 会将光标移动到第 4 行。
要返回到上一个错误,可以使用命令 :cN,光标将移回第 6 行。
在纠正了第 5 行的错误并添加了 “return 1;” 之后,可以再次运行 :make,输出将是
这只是一个小例子。你可以使用快速修复来解决你的编译时问题,并有望减少编辑-编译-编辑的循环。