Vim,C++,YCM和Syntastic包含路径问题

Ste*_*cto 11 c++ vim syntastic

我觉得我有一个很棒的使用Vim进行C++编程的设置,但我找不到告诉Vim,YCM和Syntastic搜索标题的方法.每当我想在Makefile中存在此信息时想要处理项目时,必须手动设置Vim,YCM和Syntastic的包含路径变量会非常烦人.是否有用于设置全局包含路径的自动化解决方案?

编辑:如果我设置路径,它甚至找不到标题":set path =".,/ usr/include,include,../include,/ home/steven/ovgl/include ,,""

mMo*_*ntu 3

您的标头应出现在标记文件中(请参阅:h 标记如果您不知道,

然后YouCompleteMe就可以从标签文件中读取有关标头的信息,如插件常见问题解答中所述:

YCM 不从我的标签文件中读取标识符

首先,放let g:ycm_collect_identifiers_from_tags_files = 1你的 vimrc。

确保您使用 Exuberant Ctags 生成标签文件,因为唯一支持的标签格式是 Exuberant Ctags 格式。不支持“普通”ctags 的格式。ctags --version 的输出应列出“Exuberant Ctags”。

Ctags 需要使用--fields=+l(这是一个小写的 L,而不是 1)选项来调用,因为 YCM 需要language:<lang>因为 YCM 需要标签输出中的字段。

注意:Mac OS X 默认情况下安装了“普通”ctag。brew install ctags 将为您提供 Exuberant Ctags 版本。

还要确保您的 Vim 标签选项设置正确。:h 'tags' 详情请参阅。如果您想查看 YCM 将为给定缓冲区读取哪些标记文件,请:echo tagfiles()在相关缓冲区处于活动状态的情况下运行。请注意,该函数只会列出已经存在的标记文件。