【发布时间】:2011-08-04 04:51:53
【问题描述】:
我将clang_complete.vim 复制到插件,但是当我在某个变量后键入. 时,它说:
找不到模式
我搜索了这个问题,有人说我应该配置g:clang_complete_auto:和g:clang_complete_copen:。我该怎么做?
【问题讨论】:
-
从什么时候开始对编辑提出的问题被视为题外话了?
我将clang_complete.vim 复制到插件,但是当我在某个变量后键入. 时,它说:
找不到模式
我搜索了这个问题,有人说我应该配置g:clang_complete_auto:和g:clang_complete_copen:。我该怎么做?
【问题讨论】:
我遇到了同样的问题,并通过将以下内容添加到我的 .vimrc 来解决它
let g:clang_user_options='|| exit 0'
【讨论】:
尝试打开一个示例文件
vim /tmp/sample.cpp
然后输入一些cpp代码
#include <iostream>
int main() {
std:: // <-- this should complete
}
请注意,您实际上需要包含标头,因为完成是由编译器完成的。如果这可行,但您的项目仍然说“找不到模式”,那么 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 中)。
【讨论】:
以下内容让我在 Cygwin 上使用 clang version 3.0 (tags/RELEASE_30/final) 以及在 Windows 上使用 the Clang build instructions 和昨天从主干(通常是稳定的,正如我读过的)签出的版本(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,但无论如何它都可以工作。
【讨论】:
您是否尝试通过在命令行上显式调用 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。有人找到解决方案了吗?
【讨论】:
要配置 Vim,您必须找到或创建您的 .vimrc 文件:
$ vim ~/.vimrc
然后输入:
let g:clang_complete_copen = 1
【讨论】: