我已将clang_complete.vim
复制到插件中,但当我在某个变量后键入.
时,它会说:
未找到模式
我搜索了这个问题,有人说我应该配置g:clang_complete_auto:
和g:clang_complete_copen:
。我怎么能这样做?
答案 0 :(得分:26)
我遇到了同样的问题并通过将以下内容添加到我的.vimrc
来解决了这个问题let g:clang_user_options='|| exit 0'
答案 1 :(得分:11)
尝试打开示例文件
vim /tmp/sample.cpp
并输入一些cpp代码
#include <iostream>
int main() {
std:: // <-- this should complete
}
请注意,您实际上需要包含标头,因为完成是使用编译器完成的。如果这样可行,但你的项目仍然一直说“Pattern not found”,那么clang ++可能无法编译你的项目。编译代码时是否使用任何-I
开关?将它们添加到项目目录中名为.clang_complete
的文件中。
对我来说,这适用于我的.vim/plugin
文件夹,其中只包含可供下载的clang_complete.vim
文件:
$ find .vim
.vim
.vim/plugin
.vim/plugin/clang_complete.vim
...但在此问题报告https://github.com/Rip-Rip/clang_complete/issues/39中,建议您可能需要更多文件(其他文件位于git repo中)。
答案 2 :(得分:4)
以下使用clang version 3.0 (tags/RELEASE_30/final)
在Cygwin上为我工作,以及在Windows上使用the Clang build instructions以及从主干检出的版本(通常是稳定的,如我所读)昨天({ {1}})并使用Visual Studio 2010构建:
clang version 3.1 (trunk 154056)
请注意,Windows版本可能存在偶发的断言失败但工作正常,但不完全像Cygwin版本。猜测它与使用MSVC和GCC头文件有关。
Cygwin版本有一个初始" 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
,但无论如何都可以。
答案 3 :(得分: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
}
顺便说一句,我仍然在我的MPI代码中错过了clang_complete。有没有人为此找到解决方案?
答案 4 :(得分:0)
要配置Vim,您必须找到或创建.vimrc
文件:
$ vim~ / .vimrc
然后输入:
let g:clang_complete_copen = 1