-1

いくつかのチュートリアルに従った後、openGL関数などのオートコンプリートにあふれんばかりのctagsを使用しようとしました。コマンドを使用しました

ctags -R --languages=C,C++ --c++-kinds=+p --fields=+iaS --extra=+q ./

freeglut.h、glew.hなどが存在するディレクトリにあります。次に、これを .vimrc ファイルで指定されたディレクトリにコピーします (私の .vimrc では 'set tags+=./myTag/tags' を使用)完了しますが、パラメーターはありません。

一方、上記の ctags コマンドを、メイン ファイルが存在する同じディレクトリ内の .cpp ファイルに適用すると、関数パラメーターでオートコンプリートされます。ここでいくつかの重要な情報が欠落している可能性があります。

4

2 に答える 2

2

まず、手動で ctags を管理するのにうんざりしていて、そのためにプラグインIndexerを書きました。簡単な自動タグ生成を提供し、タグを最新の状態に保ちます。詳細については、「Vim: プロジェクトに便利なコード ナビゲーション」という記事を参照してください。この記事では、Indexer + Vimprj の使用法について詳しく説明しています。

次に、コードのオートコンプリートについては、clang_completeを使用することをお勧めします。タグによる醜い方法ではなく、真のコンパイラからの真の完全な C/C++/Objective-C 補完を提供します。

于 2012-09-12T18:50:20.707 に答える
0

.vimrc ファイルで、タグ ファイルを追加する前に、ディレクトリを追加します。したがって、$HOME/.vim/tags ディレクトリにタグを追加した場合は、次の行を追加する必要があります set tags=~/.vim/tags

OmniCppComplete を参照する (.vimrc 内の) セクションは次のようになります。

" configure tags - add additional tags here or comment out not-used ones
    " Setting the directory...
    set tags=~/.vim/tags 
        " Adding the tag files
        set tags+=~/.vim/tags/cpp
        set tags+=~/.vim/tags/gl
        set tags+=~/.vim/tags/sdl
        set tags+=~/.vim/tags/qt4
" set tags+=/home/yonatan/.vim/tags/standard 
" build tags of your own project with Ctrl-F12
map <C-F12> :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .<CR>

" OmniCppComplete
let OmniCpp_NamespaceSearch = 1
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"]
" automatically open and close the popup menu / preview window
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
set completeopt=menuone,menu,longest,preview
于 2016-03-13T11:38:40.440 に答える