首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vim Omnicppcomplete -部分工作

Vim Omnicppcomplete -部分工作
EN

Stack Overflow用户
提问于 2012-11-16 19:10:56
回答 1查看 1.6K关注 0票数 1

我刚刚安装了omnicppcomplete,它正在“某种”工作。

这种行为真的很奇怪,Omnicppcomplete只适用于某些文件,而不适用于其他文件。

例如:如果我打开file1.cpp,如果我按下,omnicppcomplete就会工作。但是,如果我打开file2.cpp omnicppcomplete不再工作,并且我得到错误:-- Omni complete (^O^N^P) Pattern not found。

下面是我的完整.vimrc:

代码语言:javascript
复制
" -------------------------------- PLUGINS ----------------------------"
"############### ctags

" build tags of your own project
map <C-c> :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .<CR>

"############### OmniCppComplete
au BufNewFile,BufRead,BufEnter *.cpp,*.hpp set omnifunc=omni#cpp#complete#Main
filetype on

" configure tags - add additional tags here or comment out not-used ones
set tags+=~/.vim/tags/cpp
set tags+=~/.vim/tags/cuda

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

此外,我使用的是MacVim 7.3。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-16 20:20:47

第一件事:我建议你不要手动处理ctags,而是使用插件Indexer,它会自动完成所有的工作。我使用Indexer和omnicppcomplete很长一段时间了,在大多数情况下,omnicppcomplete的效果还可以接受。

有关详细信息,请参阅我的文章:Vim: convenient code navigation for your projects,其中详细解释了Indexer + Vimprj的用法。

第二件事: Omnicppcomplete可以接受,但并不完美。对于C/C++自动补全,我建议你不要使用omnicppcomplete,而是使用clang_complete插件。它真的很强大,完成不是通过丑陋的标签方法,而是使用真正的C/C++/Objective-C编译器(这是clang)。

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

https://stackoverflow.com/questions/13415425

复制
相关文章

相似问题

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