虽然我知道这篇文章有点旧,但我有自己的功能,比上面给出的更优化:
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>"
和你的设置!