Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

YouCompleteMe can't autocomplete

I want to develop C/C++ programs, so I installed YouCompleteMe for Vim through Vundle.but it can't work normally, In fact, it shows only the words contained in the current file.hope to help! my step are as follow:

  • download Vundle.vim
    git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  • #modify .vimrc

    set nocompatible
    filetype off
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    Plugin 'gmarik/Vundle.vim'
    Plugin 'Valloric/YouCompleteMe'
    call vundle#end()
    filetype plugin indent on

  • Launch vim and run:
`:PluginInstall`
  • download cmake and clang+llvm

    http://llvm.org/releases/download.html#3.6.0
    http://www.cmake.org/download/

  • prepare clang and cmake

    Extract "clang+llvm-3.6.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz" into ycm_temp
    Rename "clang+llvm-3.6.0-x86_64-linux-gnu" to "llvm_root_dir"
    Extract cmake-3.2.2-Linux-x86_64.tar.gz and Link bin/cmake to /usr/bin/cmake

  • make

    cd ~
    mkdir ycm_build
    cd ycm_build
    cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
    make ycm_support_libs

  • modify .vimrc

    let g:ycm_seed_identifiers_with_syntax=1
    let g:ycm_global_ycm_extra_conf = '/home/li/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py'
    let g:ycm_confirm_extra_conf=0
    let g:ycm_collect_identifiers_from_tag_files = 1
    set completeopt=longest,menu

Now, No error or warn be thrown, but it can't autocomplete C/C++ header files!

  • Note
OS:ubuntu 14.04
vim:7.4
Python:2.7.6
like image 305
wengang li Avatar asked May 06 '15 01:05

wengang li


1 Answers

Check with shortcut Ctrl-X + Ctrl-O for omni completion (function).

It will trigger omni function,

and/or download .ycm_extra_conf.py from the following link >> https://github.com/rasendubi/dotfiles/blob/d534c5fb6bf39f0d9c8668b564ab68b6e3a3eb78/.vim/.ycm_extra_conf.py

and place it inside .vim, then add the following to .vimrc

let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'

like image 127
sugab Avatar answered Oct 07 '22 21:10

sugab