包含标准头后,Vim代码完成不起作用

时间:2012-10-29 20:38:35

标签: c++ vim autocomplete

我必须在文本模式debian linux中开发我的项目。我正在使用Vim,我在其上安装了clang_completion插件。我在项目的根目录中创建了.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;
}

然而,在删除第一行的注释后,它不起作用!我怎样才能克服这个问题?

2 个答案:

答案 0 :(得分:1)

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

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

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

示例Makefile:

CXX=$(HOME)/clang_complete/bin/cc_args.py g++

all:
    $(CXX) main.cpp

答案 1 :(得分:0)

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

包含外部头文件在我的配置中运行正常,但是,正如clang complete plugin page指定的那样,必须命名要包含路径的文件(或者您可能希望传递给clang编译器的任何其他标志) .clang_complete而非.clang_completion

另外,我曾经把选项放在一行,就像我要将.clang_complete文件的普通内容作为命令行选项一样传递(不知道是否用{{分隔行) 1}}会工作)。

希望这有帮助。