Vim по умолчанию выполняет завершение на основе слов в файле, используя Ctrl-N или Ctrl-P, что удобно для недавно указанных локальных переменных и т. Д., И работает для кода на любом языке или даже обычном тексте (удобно для сложного завершения по буквам имена). Однако он не делает это семантически или со ссылкой на то, какие фактические типы вам разрешены в конкретном контексте, который вы пишете. Для этого вам нужно установить ctags , а затем в / usr / include тип:
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 перезагружать теги и, таким образом, будет выбирать новые теги автозаполнения из текущего каталога.