2011-08-14 18 views
2

VIMでomnicppcompleteを使用しようとしていますが、関数に渡された変数に対して機能するようにできません。VIM omnicppcompleteが関数パラメータでは機能しません

function1 (MyClass obj) { 
    MyClass obj2; 
    obj2.| 
} 
:例えば、私は関数内のローカル変数を定義する場合

を "見つかりません--Omni完了(^ O^N^P)パターン" の次の

function1(MyObject obj) { 
    obj.| 
} 

結果入力

正常に動作し、メンバーのポップアップリストが表示されます。また、グローバルオブジェクトに対してもうまく機能しますが、関数パラメータとして渡されるときに変数が何であるかを判断できないようです。

私の.vimrcが含まれています

残念ながら
set tags+=~/.vim/tags/cpp 
set tags+=~/Projects/myproject/Software/tags 

" OmniCppComplete 
let OmniCpp_NamespaceSearch = 2 
let OmniCpp_GlobalScopeSearch = 1 
let OmniCpp_ShowAccess = 1 
let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters 
let OmniCpp_MayCompleteDot = 1 " autocomplete after . 
let OmniCpp_MayCompleteArrow = 1 " autocomplete after -> 
let OmniCpp_MayCompleteScope = 1 " autocomplete after :: 
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"] 
let OmniCpp_LocalSearchDecl = 1 " use local search function, bracket on 1st column 
let OmniCpp_DisplayMode = 1 
au BufNewFile,BufRead,BufEnter *.cpp,*.hpp set omnifunc=omni#cpp#complete#Main 
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif 
set completeopt=menuone,menu,longest,preview 


map <F8> :!/usr/bin/ctags -R --exclude=backups --language-force=C++ --sort=yes -c++-kinds=+pl --fields=+iaS --extra=+q -f ~/Software/tags ~/Software .<cr> 
+0

正確にOmniCppオプションを使用して、ここで動作します。あるケースでは 'MyObject'を使用し、もう一つのケースでは' MyClass'を使用します。おそらくこれはエラーですか? –

+0

〜/ Projects/myproject/Software/tagsのタグを再生成するための設定はここにありません? –

答えて

0

、omnicppcompleteはC++の理解に関しては本当に効率的ではないとするのctagsに依存しています。

clang_completeをご覧ください。それは良い結果をもたらす可能性が高いです。

関連する問題