现象: 我在CentOS安装的YouCompleteMe并不会补全C++语法 开始演练! ============================================================= 恢复默认的ycm配置: 查找配置文件[chunli@CentOS~]$find~/.vim/bundle/YouCompleteMe/-nam
现象:
我在CentOS安装的YouCompleteMe并不会补全 C++语法
开始演练!
=============================================================
恢复默认的ycm配置:
这是一个简单的C++ 程序, 编译无警告可运行
[chunli@CentOS ~]$ cat main.cpp #include <vector> #include <map> int main() { std::vector<int> v1; std::map <int,string> m1; return 0 } [chunli@CentOS ~]$ g++ main.cpp -Wall && ./a.out #编译并运行,没有任何错误我的G++版本
[chunli@CentOS ~]$ g++ --version #我的G++版本 g++ (GCC) 6.3.0 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.那么问题开始了
[chunli@CentOS ~]$ cat main.cpp #include <string> #include <vector> #include <map> int main() { std::vector<int> v1; v1. std::map <int,std::string> m1; return 0; } [chunli@CentOS ~]$ 当我键入v1.时没有任何提示........... 在vim中键入:YcmDiags 看看问题问题1:找不到 'string' 文件
解决问题1:要找到 'string' 文件
[chunli@CentOS ~]$ sudo find / -name 'string' #查找这个文件 /usr/include/c++/4.4.4/string /usr/include/c++/4.4.4/debug/string /usr/local/include/c++/6.3.0/string /usr/local/include/c++/6.3.0/experimental/string /usr/local/include/c++/6.3.0/debug/string /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/BoostParts/boost/algorithm/string /home/chunli/ycm_CentOS/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/BoostParts/boost/algorithm/string [chunli@CentOS ~]$ 将系统路径写入配置 [chunli@CentOS ~]$ vim ~/.vim/.ycm_extra_conf.py 在flags中尾端追加2行 '-isystem', '/usr/local/include/c++/6.3.0/',重新vim 打开CPP文件
还是不会自动补全
在vim中键入:YcmDiags 看看问题
报错2: 找不到 'bits/c++config.h'
解决问题2:要找到 'bits/c++config.h' 文件
[chunli@CentOS ~]$ sudo find / -name 'c++config.h' /usr/include/c++/4.4.4/i686-redhat-linux/bits/c++config.h /usr/local/include/c++/6.3.0/i686-pc-linux-gnu/bits/c++config.h [chunli@CentOS ~]$ 将系统路径写入配置 [chunli@CentOS ~]$ vim ~/.vim/.ycm_extra_conf.py 在flags中尾端追加2行 '-isystem', '/usr/local/include/c++/6.3.0/i686-pc-linux-gnu/'重新vim 打开CPP文件
现在OK了, 可以补全STL了
头文件自动补全: