1.brew install vim
2.Install vundle plug-in manager
3.Install youcomplete plug-in
My vim has a prompt, but the prompts are only some characters in the current script. It does not prompt system library functions or other automatic input.
And you can’t complete it even by pressing the tab key.
走同樣的路,發(fā)現(xiàn)不同的人生
YCM
對(duì)于clang
的補(bǔ)全需要依賴clang++ 3.70
及以上的版本。另外補(bǔ)全不一定是tab
, 你得看看.vimrc怎么設(shè)置的,我的是ctrl + j或者k
Make your choice
If everything is installed, then open vim
之后,使用Vundle
看看是不是安裝成功,如果成功的話,那可能是配置問(wèn)題了,
下面是我本機(jī)的YCM
the configuration in vimrc.bundle: See if it helps?
" YouCompleteMe {{{
"youcompleteme 默認(rèn)tab s-tab 和自動(dòng)補(bǔ)全沖突
"let g:ycm_key_list_select_completion=['<c-n>']
let g:ycm_key_list_select_completion = ['<Down>']
"let g:ycm_key_list_previous_completion=['<c-p>']
let g:ycm_key_list_previous_completion = ['<Up>']
let g:ycm_complete_in_comments = 1 "在注釋輸入中也能補(bǔ)全
let g:ycm_complete_in_strings = 1 "在字符串輸入中也能補(bǔ)全
let g:ycm_use_ultisnips_completer = 1 "提示UltiSnips
let g:ycm_collect_identifiers_from_comments_and_strings = 1 "注釋和字符串中的文字也會(huì)被收入補(bǔ)全
let g:ycm_collect_identifiers_from_tags_files = 1
" 開(kāi)啟語(yǔ)法關(guān)鍵字補(bǔ)全
let g:ycm_seed_identifiers_with_syntax=1
"let g:ycm_seed_identifiers_with_syntax=1 "語(yǔ)言關(guān)鍵字補(bǔ)全, 不過(guò)python關(guān)鍵字都很短,所以,需要的自己打開(kāi)
" 跳轉(zhuǎn)到定義處, 分屏打開(kāi)
let g:ycm_goto_buffer_command = 'horizontal-split'
" nnoremap <leader>jd :YcmCompleter GoToDefinition<CR>
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap <leader>gd :YcmCompleter GoToDeclaration<CR>
" 引入,可以補(bǔ)全系統(tǒng),以及python的第三方包 針對(duì)新老版本YCM做了兼容
" old version
if !empty(glob("~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"))
let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"
endif
" new version
if !empty(glob("~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"))
let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"
endif
" 直接觸發(fā)自動(dòng)補(bǔ)全 insert模式下
" let g:ycm_key_invoke_completion = '<C-Space>'
" 黑名單,不啟用
let g:ycm_filetype_blacklist = {
\ 'tagbar' : 1,
\ 'gitcommit' : 1,
\}
" }}}