2013-04-23 77 views
4

我已經安裝了插件clang_complete。我把這個設置成我的.vimrc:Clang插件問題

let g:clang_use_library  = 1 
    let g:clang_auto_select  = 0 
    let g:clang_complete_auto = 1 
    let g:clang_complete_copen = 1 
    let g:clang_complete_macros = 1 
    let g:clang_complete_patters = 1 
    set completeopt=menu,longest 

    let g:clang_library_path = '/usr/lib/clang' 
    "let g:clang_library_path = '/usr/lib/llvm-2.9' 

    let g:clang_auto_user_options = "-I/usr/include/c++/4.6, .clang_complete" 
    let g:clang_snippets = 1 
    let g:clang_snippets_engine = 'clang_complete' 

當我打開我有以下錯誤消息.cpp文件每次:

Error detected while processing function <SNR>15_ClangCompleteInit..LoadUserOptions: 
line 20: 
E121: Undefined variable: getopts# 
Loading libclang failed, falling back to clang executable. Are you sure '/usr/bin/clang' contains libclang? 

VIM編譯Python功能。所以vim --version得到:

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 28 2012 13:50:08) 
Included patches: 1-154 

... +python -python3 ... 

Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA  -Wall -g -O2 -D_FORTIFY_SOURCE=1  -I/usr/include/tcl8.5 -D_REENTRANT=1 -D_THREAD_SAFE=1 -D_LARGEFILE64_SOURCE=1 
Linking: gcc -L. -Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-Bsymbolic-functions -Wl,--as-needed -o vim -lXaw -lXmu -lXext -lXt -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -ldl -lm -ltinfo -lnsl -lselinux -lacl -lattr -lgpm -ldl -L/usr/lib -llua5.1 -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl/5.12/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -L/usr/lib -ltcl8.5 -ldl -lpthread -lieee -lm -lruby1.8 -lpthread -lrt -ldl -lcrypt -lm 

任何人都可以幫助解決問題?

+1

Vim的版本和安裝方法?類似這樣的事情也很容易,因爲你[沒有正確安裝所有文件](https://github.com/Rip-Rip/clang_complete/issues/171)。此外,你可能有更好的運氣[在Github上添加一個問題](https://github.com/Rip-Rip/clang_complete/issues)。如果你這樣做,請在這裏發佈答案,如果它在Github上得到解決。 – timss 2013-04-23 20:48:18

回答

2

這裏有兩個問題。

  1. 您給g:clang_auto_user_options的值無效。 clang_complete文檔提到的「路徑」並不意味着路徑應該寫入選項字符串中;它指的是使用Vim的內置'path'選項來提供-I標誌的列表。

    改爲使用set g:clang_user_options = "-I/usr/include/c++/4.6",它只是直接傳遞給clang。

    旁白:在錯誤的getopts#的發生是因爲clang_complete試圖解釋你的-I...字符串作爲選項源函數的名稱的一部分。 (文檔中的{anything}子句)getopts#-I/usr/include/c++/4.6#getops()中的-不是有效的Vimscript函數字符,因此它在那裏被截斷。

  2. clang_complete希望你指定的目錄g:clang_library_path遏制libclang.dyliblibclang.so直接在其內部(例如/usr/lib/clang/libclang.so你的情況)。

    不是所有的clang發行版都提供了libclang共享庫,因此您可能需要自己編譯它。