VIM安装omnicppcomplete

转自:http://v2x222.blog.163.com/blog/static/62366701201122183470/

VIM学习 2010-11-17 20:55:12 阅读156 评论0   字号:大中小 订阅

unzip omnicppcomplete-0.41.zip -d ~/.vim
如果你到/usr/share/vim/vim70下面解压是不行的 我弄了两天才搞明白 哎~~~

vim在默认情况下是没有这个功能的,我们需要下载一个插件和一个软件来实现这个功能。 
 
插件:omnicppcomplete 
下载链接:http://www.vim.org/scripts/script.php?script_id=1520
 
软件:ctags 
 
ctags一般系统默认就有。 
 
下载并安装插件 omnicppcomplete: 
 
 
解压:unzip omincppcomplete.zip -d ~/.vim 
 
omnicppcomplete至此安装成功。 
 
运行vim,然后在vim的命令模式下输入 :helptags $HOME/.vim/doc ,这样可以添加omnicppcomplete的帮助文件到vim。 
 
你可以继续输入:h omnicppcomplete来查看插件提供的文档,里边有安装和使用的所用方法。 
 
在你的vim配置文件(~/.vimrc或者/etc/vimrc,没有可以新添加一个)加上以下几句: 
set nocp
filetype plugin on
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
set completeopt=menu
set cindent

:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap < <><ESC>i
:inoremap > <c-r>=ClosePair('>')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i

function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
        return "\<Right>"
else
return a:char
endif
endf
 
 
使用方法: 
 
omnicppcomplete主要依赖ctags生成的tags文件来判断补全的,所以首先应该生成一定的信息。也就是说应该先把类写好,然后再生成tags,以后出现对象的 ”.” 或 ”->”成员操作时它自动寻找成员函数。 
 
工程目录 下用vim编辑文件时按 Ctrl+F12 ,ctags会把这个文件所在目录以及子目录的所有文件信息收集生成一个名为tags的文件存在当前编辑文件所在目录。然后就可以实现代码自动补全。 在~/.vimrc中添加的 map…… 那句宏就实现这个功能。/*强烈建议不要使用这个:注意,如果要让新编写的文件可以使用则需先写入,命令为 :w */

你可能感兴趣的:(VIM安装omnicppcomplete)