YouCompleteMe Installation

Acutally, there’re pretty detailed instructions for installation on YCM(YouCompleteMe)’s github page. However, the installation steps on CentOS and Debian cannot be found.

Complete YCM Installation on CentOS

Install YCM with Vundle

Vundle is a Plugin Manager for Vim. It provides an easy way to install, update and configure Vim Plugins.

  1. Download Vundle
    1
    git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  2. Edit .vimrc
    Put the following scripts in your .vimrc. You can also add other Plugins.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
           set nocompatible              " be iMproved, required
    filetype off " required

    " set the runtime path to include Vundle and initialize
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    " alternatively, pass a path where Vundle should install plugins
    "call vundle#begin('~/some/path/here')

    " let Vundle manage Vundle, required
    Plugin 'VundleVim/Vundle.vim'

    " The following are examples of different formats supported.
    " Keep Plugin commands between vundle#begin/end.
    " plugin on GitHub repo
    Plugin 'Valloric/YouCompleteMe'
    " plugin from http://vim-scripts.org/vim/scripts.html
    " Plugin 'L9'
    " Git plugin not hosted on GitHub
    "Plugin 'git://git.wincent.com/command-t.git'
    " git repos on your local machine (i.e. when working on your own plugin)
    "Plugin 'file:///home/gmarik/path/to/plugin'
    " The sparkup vim script is in a subdirectory of this repo called vim.
    " Pass the path to set the runtimepath properly.
    "Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
    " Install L9 and avoid a Naming conflict if you've already installed a
    " different version somewhere else.
    " Plugin 'ascenator/L9', {'name': 'newL9'}

    " All of your Plugins must be added before the following line
    call vundle#end() " required
    filetype plugin indent on " required
    " To ignore plugin indent changes, instead use:
    "filetype plugin on
    "
    " Brief help
    " :PluginList - lists configured plugins
    " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
    " :PluginSearch foo - searches for foo; append `!` to refresh local cache
    " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
    "
    " see :h vundle for more details or wiki for FAQ
    " Put your non-Plugin stuff after this line
  3. Plugin Install
    Launch vim and run :PluginInstall
    Please be patient. It could take a while to complete the installation.

Install Dependencies for Compiling

  1. Install development tools and CMake:
    1
    yum install build-essential cmake
  2. Make sure you have Python headers installed:
    1
    yum install python-devel rh-python36-python-devel.x86_64

image1
In case python3 is not installed on your CentOS:
Enable Software Collections:

1
sudo yum install centos-release-scl

Install Python3:
1
sudo yum install rh-python36

If you want to use python 3.6 as default
1
scl enable rh-python36 bash

Compile YCM

  • Compiling YCM with semantic support for C-family languages:
    1
    2
    cd ~/.vim/bundle/YouCompleteMe
    ./install.py --clang-completer
  • Compiling YCM without semantic support for C-family languages:
    1
    2
    cd ~/.vim/bundle/YouCompleteMe
    ./install.py
  • To simply compile with everything enabled, there’s a –all flag.
    1
    2
    cd ~/.vim/bundle/YouCompleteMe
    ./install.py --all

Referrence