0
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/youcompleteme/.ycm_extra_conf.py'
let g:ycm_min_num_of_chars_for_completion=1
let g:ycm_confirm_extra_conf=0
let g:ycm_autoclose_preview_window_after_completion = 1 
nnoremap <F5>           :YcmForceCompileAndDiagnostics<CR>
nnoremap <leader>gic    :YcmCompleter GoToInclude<CR>
nnoremap <leader>gdc    :YcmCompleter GoToDeclaration<CR>
nnoremap <leader>gdf    :YcmCompleter GoToDefinition<CR>
nnoremap <leader>gip    :YcmCompleter GoToImprecise<CR>
nnoremap <leader>f      :YcmCompleter FixIt<CR>

~/.vimrcに関連する部分ですycm
また、flagsinには、 のインクルード パスを参照する.ycm_extra_conf.pyの結果が含まれます。 echo | gcc -std=c++11 -v -E -x c++ -C-family

  • 問題は正常に動作しますが、
    まったく動作しません。 (ここでは、プロジェクト内のローカル ヘッダー ファイルを認識できることを意味します。) NOTEに よると、現在のでのみ機能します。 ただし、私の場合、編集中のファイルでのみ機能します。 auto-completeGoToDefinition
    worksycm
    GoToDefinitiontranslation unit
    GoToDefinition

  • 私が試したこと:.ycm_extra_conf.pyグローバル 化をあきらめる

    1. .ycm_extra_conf.pyプロジェクトの先頭にコピーし、 で変更g:ycm_global_ycm_extra_conf~/.vimrcます。
    2. 行うYcmForceCompileAndDiagnostics
    3. ファイルの関数をチェックfinal_flagsインします。FlagsForFile.ycm_extra_conf.py
    4. final_flagsこんな感じでした。
      ['-Wall', '-Wextra', '-Werror', '-Wc++98-compat', '-Wno-long-long', '-Wno-variadic-macros', '-fexceptions', '-DN DEBUG', '-DUSE_CLANG_COMPLETER', '-std=c++11', '-x', 'c++', '-isystem', '/home/illuxic/Redbase/../BoostParts', ' -isystem', '/System/Library/Frameworks/Python.framework/Headers', '-isystem', '/home/illuxic/Redbase/../llvm/inc lude', '-isystem', '/home/illuxic/Redbase/../llvm/tools/clang/include', '-I', '/home/illuxic/Redbase/.', '-I', ' /home/illuxic/Redbase/./ClangCompleter', '-isystem', '/home/illuxic/Redbase/./tests/gmock/gtest', '-isystem', '/ home/illuxic/Redbase/./tests/gmock/gtest/include', '-isystem', '/home/illuxic/Redbase/./tests/gmock', '-isystem' , '/home/illuxic/Redbase/./tests/gmock/include', '-isystem', '/usr/include/c++/5', '-isystem', '/usr/include/x86 _64-linux-gnu/c++/5', '-isystem', '/usr/include/c++/5/backward', '-isystem', '/usr/lib/gcc/x86_64-linux-gnu/5/in clude', '-isystem', '/usr/local/include', '-isystem', '/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed', '-isystem ', '/usr/include/x86_64-linux-gnu', '-isystem', '/usr/include']
    5. GoToDefinitionまだ私に「RuntimeError: Can't jump to definition.」を与えます

どうすればGoToDefinition仕事をすることができますか?
間接的にインクルードされたヘッダー ファイルだけでなく、直接インクルードされたヘッダー ファイルも認識できません。

4

1 に答える 1