YCM g:ycm_semantic_triggers不起作用

时间:2014-11-08 11:32:30

标签: vim

我在我的vimrc中写了这个:

  let `g:ycm_semantic_triggers = {'cpp': ['->', '.', '::', 're![a-zA-Z0-9_]'], 'd': ['.', 're![a-zA-Z0-9_]']}`

但是d或cpp缓冲区,语义完成只在我键入默认触发器时显示,而不是来自a-z的任何字符。为什么它根本不起作用?

我使用Dutyl,OmniComplete引擎,通过DCD来完成D ..

1 个答案:

答案 0 :(得分:0)

供将来参考:g:ycm_semantic_triggers无法正常工作。它不会检查游标前的文本是否匹配,但它会检查代码是否到达当前标识符(由this regex (or one of the language specific regexes)定义)的位置。因此,要在每个角色上启动语义检查,请执行类似的操作(这实际上仅在3个字符后启动检查器):

if !exists('g:ycm_semantic_triggers')
    let g:ycm_semantic_triggers = {}
endif
let g:ycm_semantic_triggers.python = ['re!(?=[a-zA-Z_]{3})']