首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VIM omnicppcomplete不适用于函数参数

VIM omnicppcomplete不适用于函数参数
EN

Stack Overflow用户
提问于 2011-08-14 23:44:56
回答 1查看 859关注 0票数 2

我试图在VIM中使用omnicppcomplete,但我无法让它对传递给函数的变量起作用。例如,键入以下内容

代码语言:javascript
复制
function1( MyObject obj ) {
    obj.|
}

结果为"--Omni补全(^O^N^P)模式未找到“

如果我在函数中定义了一个局部变量:

代码语言:javascript
复制
function1 ( MyClass obj) {
    MyClass obj2;
    obj2.|
}

它工作得很好,我得到了一个弹出的成员列表。它也适用于全局对象,但似乎不能确定作为函数参数传递的变量是什么。

我的.vimrc包含:

代码语言:javascript
复制
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>
EN

回答 1

Stack Overflow用户

发布于 2011-08-22 21:41:16

不幸的是,omnicppcomplete依赖于ctag,这对于C++理解来说并不是很有效。

你应该看看clang_complete。这可能会带来更好的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7057828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档