Vim C ++自动完成

时间:2010-08-11 12:22:44

标签: c++ unix vim

如何在Vim中启用自动完成功能?

我试过这个,但我不熟练使用vimrc文件等,所以它没有用完。你能给我一步一步说明如何做到这一点吗?


修改

我尝试安装OmniCppComplete。按照说明操作,但是当我尝试使用它时,我收到以下错误:

  

处理函数omni时检测到错误#cpp #complete#Main..24_InitComplete:

     

第24行:

     

E10:\应该跟/,?或&

3 个答案:

答案 0 :(得分:4)

详细说明Auto complete (archive.org)输入前几个字符,然后按Ctrl-> P(对于向后搜索)或按Ctrl-> N(对于向前搜索),列出所有可用选项或完成它。

我使用vim7.2(自动完成在vim7中引入),这些控件工作得很好。

答案 1 :(得分:4)

默认情况下,Vim将根据文件中的单词使用Ctrl-N或Ctrl-P完成,这对于最近引用的局部变量等很方便,适用于任何语言甚至普通文本的代码(方便完成困难)拼写名称)。但是,它不会在语义上或参考您正在编写的特定上下文中允许的实际类型。为此,您需要install ctags,然后在/ usr / include type:

ctags -f ~/.vim/stdtags -R --c++-kinds=+p --fields=+iaS --extra=+q .

然后将其添加到.vimrc:

set nocp
filetype plugin on
map <C-L> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR>

set tags=~/.vim/stdtags,tags,.tags,../tags

autocmd InsertLeave * if pumvisible() == 0|pclose|endif

这也将使Ctrl-L重新加载标签,从而从当前目录中获取新的自动完成标签。

答案 2 :(得分:2)

我最喜欢的是clang_complete here。它非常容易安装,并且自述文件中的默认配置运行良好。您不需要生成标签, 它会在可用时自动显示完整选项。它也可以突出显示 语法错误。