我尝试设置YCM以在C中使用自动完成功能。 我跟进了manaul中描述的指令。(:help YouCompleteMe) 但它并没有为我显示任何自动填充列表。 我的ycm_extra_conf.py和调试信息中的部分标志如下所示。 (ps,当我打开C文件并输入pri时,我也发布了我的当前状态(它应该建议printf等等)。
谢谢:)
'-std=c11',
'-x',
'c'
'-isystem',
'../BoostParts',
'-isystem',
'/System/Library/Frameworks/Python.framework/Headers',
'-isystem',
'../llvm/include',
'-isystem',
'../llvm/tools/clang/include',
'-I',
'.',
'-I',
'./ClangCompleter',
'-isystem',
'./tests/gmock/gtest',
'-isystem',
'./tests/gmock/gtest/include',
'-isystem',
'./tests/gmock',
'-isystem',
'./tests/gmock/include',
#C default header
'-isystem',
'/usr/lib/gcc/x86_64-linux-gnu',
'-isystem',
'/usr/lib/gcc/x86_64-linux-gnu/5/include',
'-isystem',
'/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed',
'-isystem',
'/usr/local/include',
'-isystem',
'/usr/include',
答案 0 :(得分:2)
从一开始就看:
'-std=c11',
'-x',
'c'
'-isystem',
最后两项变为c-isystem
(请参阅:YcmDebug
输出)。它可能会混淆编译器。我想你的意思是-c
。然而,YouCompleteMe
这样的标志是多余的,可以安全地省略。
P.S。 C ++头文件也会混淆C编译器,因此您需要确保提供的头文件与当前源文件类型(C或C ++)一致。