この投稿が少し古いことは知っていますが、上記のものよりも少し最適化された独自の関数があります。
function! g:UltiSnips_Complete()
  call UltiSnips#ExpandSnippetOrJump()
  if g:ulti_expand_or_jump_res == 0
    if pumvisible()
      return "\<C-N>"
    else
      return "\<TAB>"
    endif
  endif
  return ""
endfunction
もちろん、Joey Liu が提供した設定をそのままにして、この機能を使用すれば、すべてが完璧に機能します!
編集: また、別の関数を使用して、YouCompleteMe と UltiSnips の間のバックステッピング機能を増やします。私が何を意味するかをお見せします:
function! g:UltiSnips_Reverse()                                                                                               
  call UltiSnips#JumpBackwards()                                                                                              
  if g:ulti_jump_backwards_res == 0        
    return "\<C-P>"                                                                                                           
  endif                                                                                                                       
  return ""                                                                                                                   
endfunction
次に、これを .vimrc に入れてください:
au BufEnter * exec "inoremap <silent> " . g:UltiSnipsJumpBackwardTrigger . " <C-R>=g:UltiSnips_Reverse()<cr>"
だけでなくlet g:UltiSnipsJumpBackwardTrigger="<s-tab>"、あなたのセット!