3

当我同时使用 YouCompleteMe 和 UltiSnips 时,遇到 2 个错误:

  1. 我可以键入一个片段模式,YCM 下拉菜单会识别它,但是当我向下切换到菜单中的片段时,我无法展开它。我尝试重新映射 g:UltiSnipsExpandTrigger到几个不同的键(cl、cj、ck、cl、F5),但仍然没有成功。我还没有看到 UltiSnips 实际扩展了一个片段。
  2. 当我打开一个新文件 egapy 时,YCM 无法识别文件中的 ultisnippets。我基本上是在尝试重新创建ultisnips git page上漂亮 gif 中演示的用法。YCM 无法识别打字#!,但如果我打开一个已经保存的 python 文件,#! 会被认可。

也许这两个问题是相关的。

谢谢你的时间。

4

2 回答 2

3

我通过以下配置解决了这个问题:

UltiSnips:

let g:UltiSnipsSnippetsDir        = $HOME.'/.vim/UltiSnips/'
let g:UltiSnipsSnippetDirectories=["UltiSnips"]
let g:UltiSnipsExpandTrigger="<c-j>"
let g:UltiSnipsJumpForwardTrigger="<c-j>"
let g:UltiSnipsJumpBackwardTrigger="<c-k>"
let g:UltiSnipsListSnippets="<c-h>"

YCM:

let g:ycm_complete_in_comments = 1 
let g:ycm_seed_identifiers_with_syntax = 1 
let g:ycm_collect_identifiers_from_comments_and_strings = 1 
于 2014-12-10T16:14:49.480 回答
1

我在让它们一起工作时遇到了同样的问题。

这是我的.vimrc,你可能会找到你需要的:

" ----------------------------------------------------------------------------
" Autocompletion & Snippets Plugins
" ----------------------------------------------------------------------------

if has('nvim')
    runtime! python_setup.vim
endif

Plug 'Valloric/YouCompleteMe', { 'do': './install.sh --clang-completer' }
Plug 'SirVer/ultisnips'
Plug 'ladislas/vim-snippets'

" YouCompleteMe setup
let g:ycm_autoclose_preview_window_after_completion = 1
let g:ycm_filetype_blacklist={'unite': 1}
let g:ycm_min_num_of_chars_for_completion = 1
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>

" UltiSnips setup
let g:UltiSnipsExpandTrigger='<c-k>'
let g:UltiSnipsJumpForwardTrigger='<c-k>'
let g:UltiSnipsJumpBackwardTrigger='<c-s-k>'
let g:UltiSnipsSnippetsDir=plugDir.'/vim-snippets/UltiSnips'

希望这可以帮助。

于 2014-12-09T22:50:36.957 回答