Glug youcompleteme-google let g:ycm_key_invoke_completion = '' let g:ycm_filetype_specific_completion_to_disable = {'cpp': 1, 'c': 1} let g:ycm_language_server = \ [ \ { \ 'name': 'ciderlsp', \ 'cmdline': [ '/google/bin/releases/cider/ciderlsp/ciderlsp', '--noforward_sync_responses' ], \ 'filetypes': [ 'java' ] \ }, \ ] nmap gd :YcmCompleter GoToDeclaration nmap gt :YcmCompleter GetType nmap gr :YcmCompleter GoToReferences nmap qf :YcmCompleter FixIt nmap rn :YcmCompleter RefactorRename let s:ycm_hover_popup = -1 function s:Hover() let response = youcompleteme#GetCommandResponse( 'GetDoc' ) if response == '' return endif call popup_hide( s:ycm_hover_popup ) let s:ycm_hover_popup = popup_atcursor( balloon_split( response ), {} ) endfunction " CursorHold triggers in normal mode after a delay autocmd CursorHold * call s:Hover() " Or, if you prefer, a mapping: " nnoremap D :call Hover() nnoremap D (YCMHover)