首页 » 未分类 » 正文

Youcompleteme不能成功补全头文件

Youcompleteme不能成功补全不带文件后缀名的头文件

发现问题

最近想学习qt,第一步就是倒腾环境,深度vim用户当然什么都要用vim写,于是就有了vim+qmake来写qt的操作(简单的还凑合能用吧,复杂的配合qt creator),但是没有代码提示你写起来代码那能爽吗?于是赶紧把qt/include路径添加到.ycm_extra_conf.py的flags中,满怀期待编辑文件,发现没有一些文件的补全,比如同一个目录下的两个文件:

  • hello.h
  • world

如果你成功的设置了这个目录到flags,假设目录名字为t1

#include <t1/xxxx>

代码提示xxxx只会显示hello.h,不会显示world。

原因所在

引入为在https://gitter.im/Valloric/YouCompleteMe#里@kadircet的回复

when the include is from a non-system dir we expect a filetype of h, hh, hpp or inc :/ which doesn’t work as expected in such cases

引入非系统目录的文件夹默认只显示.h .hh之类的这种头文件。

解决问题

问题的解决方法就是设置你的目录为系统目录即可

设置CPLUS_INCLUDE_PATH环境变量,比如我的目录路径是/Users/liuaotian/demo

export $CPLUS_INCLUDE_PATH=/Users/liuaotian/demo:$CPLUS_INCLUDE_PATH

然后你在去编译文件的时候

#include <t1/xxxx>

这里的xxxx就会显示两个答案

  • hello.h
  • world

END

问题到此就解决了,按照这种思路设置为你的qt路径,你的问题也就解决了。

发表评论