在Vim中实现C++提示

喜欢在VC下写C++,因为按下”.”后,会自动提示类里面的成员变量或成员函数,其实VIM也可以做到

下载omnicppcomplete插件:http://www.vim.org/scripts/script.php?script_id=1520,解压到~/.vim文件夹

安装ctags,sudo apt-get intall ctags

shell下执行如下命令:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
这样便生成了tags文件,自动补全其实是以tags文件为基础
也可以生成系统的tags文件
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q -f ~/.vim/tags/systags /usr/include /usr/local/include
对于STL的tags文件,从http://www.sgi.com/tech/stl/download.html下载STL的头文件,解压后,进入STL目录,替换__STL_BEGIN_NAMESPACE 为”namespace std {” , __STL_END_NAMESPACE 为 “}”,可以用如下命令
sed -in-place -e 's/__STL_BEGIN_NAMESPACE/namespace std {/g' *
sed -in-place -e 's/__STL_END_NAMESPACE/}/g' *

然后再执行ctags,生成tags文件

在vimrc末尾加入如下命令:

let OmniCpp_GlobalScopeSearch = 1 " 0 or 1
let OmniCpp_NamespaceSearch = 1 " 0 , 1 or 2
let OmniCpp_DisplayMode = 1
let OmniCpp_ShowScopeInAbbr = 0
let OmniCpp_ShowPrototypeInAbbr = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_MayCompleteDot = 1
let OmniCpp_MayCompleteArrow = 1
let OmniCpp_MayCompleteScope = 1

set tags+=~/.vim/tags/systags
set tags+=~/.vim/tags/stltags
set tags+=tags

这样,在按下“.”后,便可以出现自动代码提示


====

http://hi.baidu.com/biglazybug/blog/item/a162f94ac0f5a42509f7effe.html

你可能感兴趣的:(vim)