【问题标题】:vim - UltiSnips not working with YCMvim - UltiSnips 不与 YCM 一起使用
【发布时间】:2015-02-08 00:21:01
【问题描述】:

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

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

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

感谢您的宝贵时间。

【问题讨论】:

    标签: vim vim-plugin ultisnips


    【解决方案1】:

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

    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 
    

    【讨论】:

    • let g:UltiSnipsSnippetsDir = $HOME.'/.vim/UltiSnips/' let g:UltiSnipsSnippetDirectories=["UltiSnips"] 解决了我的问题!非常感谢。
    【解决方案2】:

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

    这是我的.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'
    

    希望这会有所帮助。

    【讨论】:

    • 尝试将 vimrc 的 YCM 和 UltiSnips 部分复制到我的...仍然无法正常工作。
    • 你到底复制了什么?提供你自己的.vimrc 会很有帮助...
    • 第 226-235 行。一分钟后会在github上得到它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    相关资源
    最近更新 更多