0

path默认情况下,clang_complete 插件从 vim变量中的文件中读取编译器标志。这不一定是可取的,因为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 变量。如果您不知道它是什么,请参阅有关自动加载的帮助。

所以我已经指定:

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,所以任何提示都值得赞赏。我哪里出错了?

4

1 回答 1

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

于 2014-07-05T16:47:29.750 回答