2011-04-12 69 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,但它的工作原理不管。