我已经按照安装指南安装了YouCompleteMe 。我在Windows机器上使用gVim 。基本的符号完成正在工作,但我无法从我的标题中自动完成。
如果我有:
#include <vector>
using namespace std;
vector<int> myVector;
那么它将找不到完成myVector.<smth like push_back etc...>
Vim 状态栏说:
--User defined completion (^U^N^P) Pattern not found
或者
--Omni completion (^O^N^P) Pattern not found
诊断
我开始诊断问题。:YcmDiags
命令给出来自头文件的错误列表。由于YouCompleteMe使用clang不断编译源代码,因此我尝试使用 clang 编译我的文件。我也知道我应该在.ycm_extra_conf.py的标志中为 clang 指定命令行选项。我不知道 YCM 是运行clang.exe还是clang-cl.exe,但实际上我在从命令行运行vsvars32.bat后手动使用clang-cl.exe成功编译了我的 .cpp 文件。我没有成功使用clang.exe编译。
这是我的.ycm_extra_conf.py文件标志部分:
flags = [
'-std=c++11',
'-x', 'c++',
'-I', 'C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include',
'-I', 'C:/Program Files (x86)/Windows Kits/10/Include/10.0.10150.0/ucrt',
'-I', 'C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include',
'-I', 'C:/Program Files (x86)/Windows Kits/NETFXSDK/4.6/include/um',
'-I', 'C:/Program Files (x86)/Windows Kits/8.1/Include/um',
'-I', 'C:/Program Files (x86)/Windows Kits/8.1/Include/shared',
'-I', 'C:/Program Files (x86)/Windows Kits/8.1/Include/winrt',
'/link', '/LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib" /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\lib" /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\lib\10.0.10150.0\ucrt\x86" /LIBPATH:"C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86"',
'/EHsc']