当前位置 : 主页 > 操作系统 > centos >

Linux平台 YouCompleteMe自动补全C++程序

来源:互联网 收集:自由互联 发布时间:2022-06-20
现象: 我在CentOS安装的YouCompleteMe并不会补全C++语法 开始演练! ============================================================= 恢复默认的ycm配置: 查找配置文件[chunli@CentOS~]$find~/.vim/bundle/YouCompleteMe/-nam


现象:

我在CentOS安装的YouCompleteMe并不会补全 C++语法


开始演练!

=============================================================

恢复默认的ycm配置:

查找配置文件 [chunli@CentOS ~]$ find  ~/.vim/bundle/YouCompleteMe/ -name '.ycm_extra_conf.py'   /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/clang/testdata/general_fallback/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/clang/testdata/noflags/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/clang/testdata/test-include/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/clang/testdata/client_data/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/clang/testdata/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy-multiple-solutions/solution-not-named-like-folder/extra-conf-abs/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy-multiple-solutions/solution-not-named-like-folder/extra-conf-rel/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/cs/testdata/testy-multiple-solutions/solution-not-named-like-folder/extra-conf-bad/testy/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/testdata/client/.ycm_extra_conf.py /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/testdata/extra_conf/project/.ycm_extra_conf.py 复制到当前ycm配置文件路径 [chunli@CentOS ~]$ cp /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/.vim/



这是一个简单的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' 文件

Linux平台 YouCompleteMe自动补全C++程序_Linux平台 YouCompleteM



解决问题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'

Linux平台 YouCompleteMe自动补全C++程序_Linux平台 YouCompleteM_02


解决问题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了

Linux平台 YouCompleteMe自动补全C++程序_Linux平台 YouCompleteM_03

Linux平台 YouCompleteMe自动补全C++程序_Linux平台 YouCompleteM_04


头文件自动补全:

Linux平台 YouCompleteMe自动补全C++程序_Linux平台 YouCompleteM_05






上一篇:Linux的10个最危险的命令
下一篇:没有了
网友评论