vim缺少#include建议

时间:2017-03-21 13:08:36

标签: vim

我无法找到以下vim完成功能。假设您编写了一个代码,并在包含定义此类型的相应头文件之前指定了一个类型,例如:

int main(){
    uint8_t a = 0, b = 5;
    ...
    return 0;
}

你最终得到的是:

use of undeclared identifier 'uint8_t'
VIM中的

警告(我使用YouCompleteMe)和编译错误:

error: unknown type name ‘uint8_t’

我正在寻找的是一个完善者,建议你像

use of undeclared identifier 'uint8_t' did you include stdint.h? 

如果到目前为止还没有这样的功能,原因是什么?

2 个答案:

答案 0 :(得分:1)

您可能需要将目录路径添加到编译器的-I选项列表中,或者将目录路径添加到VIM的路径选项变量

:help 'path

如果您不知道要包含的路径,locate stdint.h可能是一个好的开始。

相关Link

答案 1 :(得分:1)

lh-cpp我有一个small feature,给定一个ctags数据库将能够添加与光标下的符号相关的包含语句。现在我已将feature提取到lh-dev

我还记得已经定义了一个associative map知道标准库中的一些符号来自哪里,到目前为止我只使用它来自动添加我在C ++类片段中继承的类型的包含语句。可以肯定的是,它也可以用于修复缺失的包含(不是每个人都想用ctags解析标准库)。

但请注意,我的脚本不会尝试自动检测所有缺失的包含以添加它们。它在真正的C ++项目中太复杂了。