2011-04-12 34 views
18

我複製clang_complete.vim對插件的,但是當我的一些變量之後鍵入.,它說:沒有發現鏘完成Vim的

我搜索這個問題

模式,有人說我應該配置g:clang_complete_auto:g:clang_complete_copen:。我怎樣才能做到這一點?

+1

相關:http://stackoverflow.com/q/1115876/1968 – 2011-04-14 08:31:56

+8

既然什麼時候編輯視爲題外話? – UncleZeiv 2011-04-14 09:28:01

回答

11

嘗試打開一個示例文件

vim /tmp/sample.cpp 

,並輸入一些CPP代碼

#include <iostream> 

int main() { 
    std:: // <-- this should complete 
} 

請注意,您確實需要包括頭,因爲完成是用編譯器完成。如果這可行,但你的項目仍然在說「模式未找到」,那麼鏗鏘聲可能無法編譯你的項目。編譯代碼時,是否使用任何-I開關?將它們添加到項目目錄中名爲.clang_complete的文件中。

對我來說這正常工作與只含clang_complete.vim文件可供下載我.vim/plugin文件夾:

$ find .vim 
.vim 
.vim/plugin 
.vim/plugin/clang_complete.vim 

...但這個問題的報告https://github.com/Rip-Rip/clang_complete/issues/39中,建議您可能需要更多的文件(其他文件在git倉庫中)。

0

要配置Vim的,你必須找到或創建您.vimrc文件:

$ VIM的〜/ .vimrc

然後輸入:

let g:clang_complete_copen = 1 
+0

它仍然不起作用。 Clang可以很好地編譯代碼。 – dalibocai 2011-04-12 21:05:41

+0

@dalibocai你可以測試一個只有一個文件的小項目嗎?你有其他插件嗎? – etaty 2011-04-12 21:42:50

+0

我測試它在std :: string,它不起作用。我已經刪除了所有omni完成文件。我測試了clang ++,它運行良好。 – dalibocai 2011-04-12 23:01:33

1

您是否嘗試通過在命令行上顯式調用Clang來編譯Vim之外的代碼?

我與我的代碼有同樣的問題,但事實證明,由於使用MPI庫(mpich2),Clang無法編譯我的代碼。也許類似的問題會導致Clang在你的情況下失敗?就我而言,如果我刪除了MPI依賴性,一切工作正常,例如像:

#include <iostream> 
#include <string> 

int main() { 
    std::string myString("test string"); 
    std::cout << myString.size() << std::endl; // After typing the dot, I get a list of std::string methods 
} 

由這路,我依然想念clang_complete在我的MPI代碼。有沒有人找到這個解決方案?

26

我有同樣的問題,並通過添加以下內容到我的解決方案。的vimrc

let g:clang_user_options='|| exit 0' 
+2

有關其他上下文,請參閱:https://github.com/Rip-Rip/clang_complete/issues/10 – Cepheid 2011-04-17 18:26:15

+1

這絕對值得一票。 – zeboidlund 2012-01-07 23:07:43

+0

+1贊 - 這也幫助我 – kfmfe04 2012-01-29 21:26:49

4

下得到的東西,我在Cygwin使用clang version 3.0 (tags/RELEASE_30/final)使用the Clang build instructions工作,以及在Windows和版本從主幹簽出(通常是穩定的,因爲我讀過)昨日(clang version 3.1 (trunk 154056))和內置使用Visual Studio 2010:

" clang_complete 
let g:clang_complete_auto = 0 
let g:clang_complete_copen = 1 
" :h clang_complete-auto_user_options 
if has('win32unix') " Cygwin 
     " Using libclang requires a Vim built with +python 
     let g:clang_use_library = 1 
     " Mit der Option "gcc" kriege ich Fehler. 
     " Remove "gcc" option as it causes errors. 
     let g:clang_auto_user_options='path, .clang_complete' 
elseif has('win32') " Windows 
     let g:clang_auto_user_options='path, .clang_complete' 
     let g:clang_use_library = 1 
     let g:clang_library_path='D:\Sourcen\LLVM\build\bin\Debug' 
endif 

注意,Windows版本可能有零星的斷言失敗,但工作得很好,雖然不是完全一樣的Cygwin的版本。猜猜這是關於使用MSVC與GCC頭文件。

Cygwin版本有一個初始的error: release unlocked lock,但它的工作原理不管。