包含标准标头后,Vim 代码补全不起作用

Vim code completion doesn't work after including a standard header

本文关键字:代码 不起作用 Vim 标准 包含      更新时间:2023-10-16

我必须在debian-linux文本模式下开发我的项目。我使用的是Vim,我在上面安装了clang_filterion插件。我在我的项目根目录中制作了.clang_completion文件:

-I.
-I/usr/include
-I/usr/include/c++/4.6

当我写一个像下面这样的程序时,完成效果很好。

//#include <stdio.h>
int main()
{
struct A
{
int x, y;
};
A a;
a. // After putting dot, the suggestion popup appears
return 0;
}

然而,删除第一行的注释后,它就不起作用了!我该如何克服这个问题?

我发现让clang_complete工作的最简单方法是使用提供的cc_args.py文件。

编译项目时,使用clang_complete/bin/cc_args.py而不是gcc/g++

这将生成具有所有库和依赖项的正确.crang_complete文件。在主文件夹中提供了clang_complete源目录。

示例Makefile:

CXX=$(HOME)/clang_complete/bin/cc_args.py g++
all:
$(CXX) main.cpp

我过去已经成功地使用了clang_complete插件(现在我只使用了cscope和ctags,我认为这已经足够了)。

在我的配置中,包含外部头很好,但正如clang完整插件页面所指定的,要在其中放置包含路径(或您可能想传递给clang编译器的任何其他标志)的文件必须命名为.clang_complete,而不是.clang_completion

此外,我曾经把选项放在一行上,就像我要把.clang_complete文件的纯内容作为命令行选项传递一样(不知道用分隔行是否可行)。

希望这能有所帮助。