【问题标题】:Use an alternate .clang_complete file使用备用 .clang_complete 文件
【发布时间】:2014-08-26 14:55:37
【问题描述】:

默认情况下,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,因此感谢任何提示。我哪里出错了?

【问题讨论】:

    标签: vim clang-complete


    【解决方案1】:

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

    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 文件。

    【讨论】:

      猜你喜欢
      • 2012-11-09
      • 2012-10-10
      • 2018-01-12
      • 2011-12-03
      • 2012-11-26
      • 2013-01-12
      • 2013-02-06
      • 1970-01-01
      • 2012-11-25
      相关资源
      最近更新 更多