我在我的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 ..
答案 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})']