OmniCppComplete实现C代码自动补全

OmniCppComplete主要提供输入时实时提供类或结构体的属性或方法的提示和补全。跟Talist一样,OmniCppComplete也是一个Vim插件,同样依赖与Ctags工具生成的tags文件。安装步骤跟Taglist类似。
可以参考http://blog.chinaunix.net/uid-20737871-id-3402590.html
从http://www.vim.org/scripts/script.php?script_id=1520下载安装包后。
1)进入~/.vim目录,将安装版解压缩
2)进入~/.vim/doc目录,在Vim命令行下运行"helptags .”
3)在~/.vimrc中加入以下几行:

set nocp
filetype plugin on
set ofu=syntaxcomplete#Complete
imap <silent> ` <C-X><C-O>
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " 显示函数参数列表
let OmniCpp_MayCompleteDot = 1   " 输入 .  后自动补全
let OmniCpp_MayCompleteArrow = 1 " 输入 -> 后自动补全
let OmniCpp_MayCompleteScope = 1 " 输入 :: 后自动补全
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
" 自动关闭补全窗口
" au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
" set completeopt=menuone,menu,longest

omnicompletion需要配合ctags使用,首先在需要的源码树中生成ctags标签,执行如下的指令:

ctags -R  --C-kinds=+p --fields=+aS --extra=+q
或者
ctags -R -f ~/.vim/tags/c  --C-kinds=+p --fields=+aS --extra=+q

效果如下所示:
1、字符、函数、结构体补全
在这里插入图片描述
输入一部分字符后,`键实现自动匹配,可以自己选择匹配的函数或结构进行补全。
2、实现类或结构体的属性或方法的提示和补全。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/biaotai/article/details/108086138