默认情况下,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,所以任何提示都会受到赞赏。我哪里出错?
答案 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
文件。