安装好vim后及插件管理器
前提:安装了python3.6以上的版本,否则无法执行install.py脚本,最新版本的YCM插件需要vim支持python3
1、进入插件目录:cd ~/.vim/bundle
2、下载ycm:https://github.com/ycm-core/YouCompleteMe.git
3、更新依赖模块:git submodule update --init --recursive
4、安装:./install.py --clanged-completer # --all 安装所有的补全(目前最新版本的YCM已经不需要额外下载llvm+clang来编译了),编译完成后的结果如下图所示:
比以前方便了很多,clang已经放到了.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/clangd/output目录了,并且已经启用了,不用再配置复杂的.ycm_extra_conf.py文件了
关于YCM的说明、配置都在:https://github.com/ycm-core/YouCompleteMe#c-family-semantic-completion
你可以找到任何关于ycm的信息,不过可能需要花一点时间。
5、.vimrc的配置:
Plugin 'Valloric/YouCompleteMe'
let g:ycm_key_list_select_completion=['<c-n>']
let g:ycm_key_list_previous_completion=['<c-p>']
let g:ycm_confirm_extra_conf=0 "关闭加载.ycm_extra_conf.py提示
let g:ycm_collect_identifiers_from_tags_files=1 " 开启 YCM 基于标签引擎
let g:ycm_min_num_of_chars_for_completion=1 " 从第1个键入字符就开始罗列匹配项
let g:ycm_cache_omnifunc=0 " 禁止缓存匹配项,每次都重新生成匹配项
let g:ycm_seed_identifiers_with_syntax=1 " 语法关键字补全
nnoremap <F5> :YcmForceCompileAndDiagnostics<CR> "force recomile with syntastic
"nnoremap <leader>lo :lopen<CR> "open locationlist
"nnoremap <leader>lc :lclose<CR> "close locationlist
"inoremap <leader><leader> <C-x><C-o>
let g:ycm_complete_in_comments = 1 "在注释输入中也能补全
let g:ycm_complete_in_strings = 1 "在字符串输入中也能补全
let g:ycm_collect_identifiers_from_comments_and_strings = 0 "注释和字符串中的文字也会被收入补全
let g:ycm_max_num_identifier_candidates = 50
let g:ycm_auto_trigger = 1
let g:ycm_error_symbol = '>>'
let g:ycm_warning_symbol = '>'
"highlight Pmenu ctermfg=4 ctermbg=0 guifg=#ffffff guibg=#000000 "提示不再是粉红色(pink)
highlight Pmenu ctermfg=4 ctermbg=8 guifg=#ffffff guibg=#000000 "提示不再是粉红色(pink)
6、效果如下:
7、可能的问题:
7.1、YouCompleteMe unavailable: unable to load Python.
安装:sudo yum install vim-gtk-syntax