如何在Vim中启用自动完成功能?
我试过这个,但我不熟练使用vimrc文件等,所以它没有用完。你能给我一步一步说明如何做到这一点吗?
修改
我尝试安装OmniCppComplete。按照说明操作,但是当我尝试使用它时,我收到以下错误:
处理函数omni时检测到错误#cpp #complete#Main..24_InitComplete:
第24行:
E10:\应该跟/,?或&
答案 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。它非常容易安装,并且自述文件中的默认配置运行良好。您不需要生成标签, 它会在可用时自动显示完整选项。它也可以突出显示 语法错误。