开发工具 SnipMate 和 YouCompleteMe 插件触发键 tab 冲突

xautjzd · 2013年08月02日 · 最后由 cyliu 回复于 2014年12月21日 · 12701 次阅读

SnipMate 和 YouCompleteMe 插件触发键都是 tab,所以会有一个失效,google 搜了一些答案,如:let g:snips_trigger_key = '',但是试过,还是没有效果。请问这个问题怎么解决呢

let g:ycm_key_list_select_completion = ['<Down>', '<C-N>']

我的是

let g:ycm_key_list_select_completion = ['<c-n>', '<Down>']
let g:ycm_key_list_previous_completion = ['<c-p>', '<Up>']

#2 楼 @edgar_wang_cn 谢谢。snipmate 还是不起作用。昨晚先装的 snipmate,测试没问题,然后装了 YCM,再进行测试,发现 snipmate 不起作用了。这个确实是将 YCM 的键改了,但是 snipmate 还是没反应

#3 楼 @xautjzd 推荐你用https://github.com/SirVer/ultisnips ,这个应该算是目前 vim 上最好的 snippets 补全插件了,这个应该可以和 YCM 和平相处,而且功能更强大。

按照 snipmate 的文档,修改 trigger key 要改动 snipmate.vim/after/plugin/snipMate.vim 文件

例如将改为可以将下面两行

" You can safely adjust these mappings to your preferences (as explained in
" :help snipMate-remap).
ino <silent> <tab> <c-r>=TriggerSnippet()<cr>
snor <silent> <tab> <esc>i<right><c-r>=TriggerSnippet()<cr>

改为

ino <silent> <C-\> <c-r>=TriggerSnippet()<cr>
snor <silent> <C-\> <esc>i<right><c-r>=TriggerSnippet()<cr>

在 Mac OSX 上测试可以使用 虽然已经一年了,还是希望能帮上忙吧

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册