在任何输入后,使vim中的clang-complete完全自动完成

时间:2014-09-19 10:25:39

标签: vim clang-complete

如何让clang_complete不仅在。, - >之后自动完成和::,但是在单词的前三个字符后例如?

1 个答案:

答案 0 :(得分:0)

开箱即用clang_complete不支持此功能,但这里有一个如何实现它的示例(这是概念验证而非工作解决方案):

autocmd CursorMovedI *.h,*.c,*.hpp,*.cpp call FastInvoke()
function! FastInvoke()
    let l:col = col('.')
    if l:col == 1 || len(expand('<cword>')) != 0
        return
    endif

    let l:line = line('.')
    call cursor(l:line, l:col - 1)
    let l:wordlen = len(expand('<cword>'))
    call cursor(l:line, l:col)
    if l:wordlen == 3
        call feedkeys("\<c-x>\<c-u>")
    endif
endfunction

它测量expand('<cword>')返回的字符串的长度,该字符串在单词的末尾返回0。 关于它的坏处是它会尝试完成所有内容,因此您可能会收到大量Failed to complete消息和低性能。