vim 的语法错误定位
因为 vim 天生就是 C 语言开发者的利器,所以很多时候它的一些原生功能就能为 C 程序员提供非常好的用户体验。
在 C 语言编译环境中,我们的编译一般是由 make 这个命令开始的,而 vim 就很好的整合了这个 make 命令。当然很多编译型的语言都可以通过 Makefile 编写编译规则,vim 默认也支持这些语言的语法错误定位,例如 C++。
在 vim 中,想定位语法错误需要借助 make 命令。我们可以在一个项目最上层的 Makefile 目录中打开 vim,然后执行 :make 这样会在 vim 的环境中去调用 Makefile 内的编译规则。下面看一下具体的例子吧。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(
int
argc,
char
*argv[])
{
print(
"hello, world!"
);
func();
return
0;
}
|
这个代码其实有两处错误,一个是 printf 函数我故意少写了一个 f;一个是根本没定义的 func 函数,但是却调用了。我们希望要的效果,就是 vim 可以帮助我们定位到错误的位置,告诉我们到底犯了什么错。
我们首先在 vim 中 :make,然后用 :cw 打开错误窗口,会出现如下
下面的窗口就是错误信息窗口,记录了错误信息,可以用回车选择错误的行,会在 vim 中直接跳转到出错的代码位置。
vim 很贴心的为我们做了一些快捷的错误定位方法:
- :cc 显示当前错误信息
- :cn 显示下一个错误信息
- :cp 显示上一个错误信息
- :ccl 关闭错误信息窗口