インストールガイドに従って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']