YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim. It has several completion engines: an identifier-based engine that works with every programming language, a semantic, Clang-based engine that provides native semantic code completion for C/C++/Objective-C/Objective-C++ (from now on referred to as “the C-family languages”), a Jedi-based completion engine for Python, an OmniSharp-based completion engine for C# and an omnifunc-based completer that uses data from Vim’s omnicomplete system to provide semantic completions for many other languages (Ruby, PHP etc.).

Installation on Debian Wheezy

  1. Follow Ubuntu Linux x64 super-quick installation. It will install YouCompleteMe plugin which downloads Unfortunately the downloaded library depends on glibc 2.14 while Debian Wheezy comes with glibc 2.13.

  2. Get library built for Debian Wheezy. It’s in libclang1-3.5 package:

    $ echo "deb llvm-toolchain-wheezy main" >> /etc/apt/sources.list
    $ echo "deb-src llvm-toolchain-wheezy main" >> /etc/apt/sources.list
    $ sudo apt-get update
    $ sudo apt-get install libclang1-3.5
  3. Put to ~/.vim/bundle/YouCompleteMe/third_party/ycmd:

    $ cd ~/.vim/bundle/YouCompleteMe/third_party/ycmd
    $ ln -s /usr/lib/x86_64-linux-gnu/
  4. That’s it. YouCompleteMe should work on Debian Wheezy.


Enable YouCompleteMe logging by putting this in vimrc:

let g:ycm_server_keep_logfiles = 1
let g:ycm_server_log_level = 'debug'

Then open vim and enter :YcmDebugInfo command. It should print the log file paths:

Printing YouCompleteMe debug information...
-- Server crashed, no debug info from server
-- Server running at:
-- Server process ID: 9217
-- Server logfiles:
--   /tmp/ycm_temp/server_50740_stdout.log
--   /tmp/ycm_temp/server_50740_stderr.log