使用备用.clang_complete文件

时间:2014-07-05 16:22:25

标签: vim clang-complete

默认情况下,clang_complete插件会从vim的path变量中的文件中读取编译器标志。这不一定是可取的,因为path用于其他目的,它意味着可能需要修改变量,跟踪.clang_complete文件的位置等。如果有的话会更简单,例如,只指定要包含的文件的选项。

没有,但就是这样:

clang_complete-auto_user_options
g:clang_auto_user_options
     

设置传递给clang的用户选项的来源。可用的来源是:

   [...]
     

{anything} else将在下面作为自定义选项源进行处理     方式: clang_complete将尝试加载名为的自动加载函数     getopts#{anything} #getopts,然后就可以修改了     b:clang_user_options变量。如果您不知道,请参阅 autoload 上的帮助     这是什么。

所以我已经指定:

let g:clang_auto_user_options = "clangcompl"

并使用函数

创建了一个文件autoload/getopts/clangcompl.vim
function clangcompl#getopts ()

此函数加载,但clang_complete不使用它,我收到错误:

Error detected while processing function <SNR>14_ClangCompleteInit..LoadUserOptions:
line   20:
E117: Unknown function: getopts#clangcompl#getopts

这是我第一次涉足vimscript,所以任何提示都会受到赞赏。我哪里出错?

1 个答案:

答案 0 :(得分:0)

您需要在声明中包含相对路径,而不仅仅是文件和函数名称:

function getopts#clangcompl#getopts ()
        let files = expand("~/.vim/clang_opts/*", 0, 1)
        for f in files
                let opts = readfile(f)
                for o in opts
                        let b:clang_user_options .= " ".o
                endfor
        endfor
endfunction

这将使用~/.vim/clang_opts中的任何内容作为.clang_complete文件。