vim在默认情况下是没有这个功能的,我们需要下载一个插件和一个软件来实现这个功能。
插件:omnicppcomplete 下载链接:http://download.csdn.net/source/2310557
软件: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 */
Redhat 5 下vim 配置 +自动补全功能
最新推荐文章于 2022-03-30 11:30:43 发布