我无法找到以下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?
如果到目前为止还没有这样的功能,原因是什么?
答案 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 ++项目中太复杂了。