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") and an omnifunc-based completer that uses data from Vim's omnicomplete system to provide semantic completions for many other languages (Python, Ruby, PHP etc.).