考虑这个简单的代码:
#include <vector>
#include <string>
using namespace std;
vector<string> vec1;
//vec1. //completion does not work AND break the completion that used to work if left without semicolon.
int main(){
vector<string> vec2;
vec2.push_back("sometext"); //completion works
vec1.push_back("sometext"); //works here too
return 0;
}
当我输入“vec2”时。或“vec1”。在我键入点后,我会立即看到字符串类型的所有方法的下拉列表。所以它在这里工作。
这是它变得奇怪的方式:
1)当我做“vec1”时。在 main 之前的全局范围内,我在下拉菜单中看到了错误的选项(命名空间、使用、asm、typedef、using、static_assert、extern 等)。而且它根本找不到'push_back'(“找不到用户定义的完成(^U^P^N)模式)
2)现在,如果我没有完成这一行并且忘记放一个分号,那么我就不能像以前那样在 main() 中正确地自动完成!
只有我运行的插件是 clang_complete 和 supertab。我尝试不使用 supertab 并使用各种 _vimrc 和 .clang_complete 设置,但没有任何好处。我在win7上,llvm/libclang来自官方网站。出现这样的错误是正常的吗?