Ranked in these QuestionsQuestion Ranking
Pro Clang code completion
Pro Good fuzzy completion
Pro Multiple ways to complete. Multi language support
Pro Works out-of-the box, not much configuration work necessary
Maybe use this:
let g:ycm_add_preview_to_completeopt = 1
let g:ycm_autoclose_preview_window_after_completion = 1
nnoremap <leader>d :YcmCompleter GetDoc<CR>
nnoremap <leader>j :YcmCompleter GoTo<CR>
Con Too many dependencies
Compared to others, it has too many dependencies.
Con Extremely heavyweight
YouCompleteMe installations are hundreds of megabytes large.
Con Does not have function arguments quick-preview (for Python)
You need to check the Docs too see how a function is defined.
Con Works best only with C family languages
YouCompleteMe works best for C-based languages (C, C++, Objective-C, Objective-C++) and it's semantic engine is Clang-based which means that it only works for the C-family languages.
Con No Julia support
Only Deoplete seems to have that at the moment.