真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

CentOS6.5安裝YouCompleteMe使用vimC/C++語法自動(dòng)補(bǔ)全

 史上最完整的CentOS 6平臺(tái)安裝YouCompleteMe教程,沒有之一! 

創(chuàng)新互聯(lián)長(zhǎng)期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為常山企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站,常山網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

Ubuntu/Debian/Fedora比較好安裝,各種軟件包都比較新

CentOS6系列很難裝,各種軟件包版本太低了

新手不要嘗試在CentOS6系上安裝,會(huì)有一種挫敗感!

Linux系統(tǒng)不是CentOS 6系列 的少年, 請(qǐng)不要再往下看了。

閱讀本文之前,我假設(shè)你知道什么是YouCompleteMe, 什么是C/C++語法補(bǔ)全.

好了,沒什么廢話可以再繼續(xù)往下說的了,擼起袖子開始搞!

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

步驟:

1, 安裝操作系統(tǒng)

2, 文件下載

3, 更新vim

4, 安裝ycm 和 Vundle

5, 編譯clang

6, 編譯ycm_core

7, 效果圖

8, 清理工作

1, 安裝操作系統(tǒng):

#CentOS-6.5 基于Basic Server安裝
http://archive.kernel.org/centos-vault/6.5/isos/i386/CentOS-6.5-i386-bin-DVD1.iso
http://archive.kernel.org/centos-vault/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso
 
 
#我習(xí)慣盡量不使用root權(quán)限,創(chuàng)建普通用戶
[root@CentOS ~]# useradd chunli
[root@CentOS ~]# passwd chunli
[root@CentOS ~]# vim /etc/sudoers
chunli  ALL=(ALL)       ALL
[root@CentOS ~]# logout 
chunli@ubuntu ~ ssh chunli@11.11.11.4
Last login: Tue Mar  7 06:58:18 2017 from chunli-pc
[chunli@CentOS ~]$

2, 文件下載

[chunli@CentOS ~]$ wget --no-check-certificate https://cmake.org/files/v3.8/cmake-3.8.0-rc2.tar.gz
[chunli@CentOS ~]$ wget --no-check-certificate https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
[chunli@CentOS ~]$ wget ftp://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2

2017.03.11 寫博客時(shí),最新的llvm還是3.9.1, 
2017.03.14 今天來更新博客發(fā)現(xiàn)llvm 4.0.0已經(jīng)發(fā)布了
尼瑪,更新真快.....
[chunli@CentOS ~]$ mkdir llvm-3.9.1
[chunli@CentOS ~]$ cd llvm-3.9.1
[chunli@CentOS llvm-3.9.1]$ wget http://releases.llvm.org/3.9.1/llvm-3.9.1.src.tar.xz
[chunli@CentOS llvm-3.9.1]$ wget http://releases.llvm.org/3.9.1/cfe-3.9.1.src.tar.xz
[chunli@CentOS llvm-3.9.1]$ wget http://releases.llvm.org/3.9.1/compiler-rt-3.9.1.src.tar.xz
[chunli@CentOS llvm-3.9.1]$ wget http://releases.llvm.org/3.9.1/clang-tools-extra-3.9.1.src.tar.xz

3, 更新vim

Ensure that your version of Vim is at least 7.4.143 and that it has support for Python 2 or Python 3 scripting.

#查看系統(tǒng)的vim ,版本太低了!
[chunli@CentOS ~]$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr  5 2012 10:12:47)

#在線升級(jí)vim
[chunli@CentOS ~]$ sudo yum update vim        #提示是7.4.629
[chunli@CentOS ~]$ vim --version              
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 21 2016 17:06:34)
Included patches: 1-207, 209-629

[chunli@CentOS ~]$ vim --version| grep python  #查看vim對(duì)python的支持
+cryptv          +linebreak       +python/dyn      +viminfo
+cscope          +lispindent      -python3         +vreplace
vim 問題解決了!!!



4,安裝ycm, vundle

Install YCM with Vundle (or Pathogen, but Vundle is a better idea).

With Vundle, this would mean adding a Plugin 'Valloric/YouCompleteMe' line to your vimrc.

這個(gè)步驟簡(jiǎn)單,一般不會(huì)有錯(cuò)

[chunli@CentOS ~]$ sudo yum install git
[chunli@CentOS ~]$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
[chunli@CentOS ~]$ mv ~/.vimrc  ~/.vimrc.back   #備份默認(rèn)的vim配置文件
[chunli@CentOS ~]$ vim ~/.vimrc    #創(chuàng)建新的vim配置文件,鍵入如下7行

filetype off              
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
call vundle#end()            
filetype plugin indent on   

[chunli@CentOS ~]$ 
[chunli@CentOS ~]$ vim +PluginInstall +qall  #出現(xiàn)一個(gè)vim的窗口,下載大約15分鐘
[chunli@CentOS ~]$ echo $?
[chunli@CentOS ~]$ du -sh ~/.vim/bundle/YouCompleteMe/  #看看下載了什么
221M	/home/chunli/.vim/bundle/YouCompleteMe/

5 源碼編譯clang !

Complete this step ONLY if you care about semantic completion support for C-family languages. Otherwise it's not necessary   '

Download the latest version of libclang,YCM is designed to work with libclang version 3.9 or higher.

歡迎來到極易出錯(cuò)的地方, 源碼編譯clang !

[chunli@CentOS ~]$ cd llvm-3.9.1/
[chunli@CentOS llvm-3.9.1]$ ll   #我已經(jīng)將這4個(gè)包放到這里了
-rw-r--r-- 1 chunli chunli 9.9M  3月  5 23:37 cfe-3.9.1.src.tar.xz
-rw-r--r-- 1 chunli chunli 446K  3月  7 21:48 clang-tools-extra-3.9.1.src.tar.xz
-rw-r--r-- 1 chunli chunli 1.4M  3月  5 23:37 compiler-rt-3.9.1.src.tar.xz
-rw-r--r-- 1 chunli chunli  18M  3月  5 23:37 llvm-3.9.1.src.tar.xz
[chunli@CentOS llvm-3.9.1]$ tar xf llvm-3.9.1.src.tar.xz 
[chunli@CentOS llvm-3.9.1]$ tar xf clang-tools-extra-3.9.1.src.tar.xz 
[chunli@CentOS llvm-3.9.1]$ tar xf compiler-rt-3.9.1.src.tar.xz 
[chunli@CentOS llvm-3.9.1]$ tar xf cfe-3.9.1.src.tar.xz 
[chunli@CentOS llvm-3.9.1]$ mv cfe-3.9.1.src llvm-3.9.1.src/tools/clang
[chunli@CentOS llvm-3.9.1]$ mv clang-tools-extra-3.9.1.src llvm-3.9.1.src/tools/clang/tools/extra
[chunli@CentOS llvm-3.9.1]$ mv compiler-rt-3.9.1.src llvm-3.9.1.src/projects/compiler-rt

#開始編譯clang
[chunli@CentOS llvm-3.9.1]$ cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$HOME/clang3.9 -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" llvm-3.9.1.src && make -j 4
報(bào)錯(cuò)1:-bash: cmake: command not found
-----------------------------------------------

解決報(bào)錯(cuò)1: 編譯安裝最新的cmake
[chunli@CentOS ~]$ tar xf cmake-3.8.0-rc2.tar.gz 
[chunli@CentOS ~]$ cd cmake-3.8.0-rc2
[chunli@CentOS cmake-3.8.0-rc2]$ ./bootstrap
Error when bootstrapping CMake:
Cannot find appropriate C compiler on this system.
Please specify one using environment variable CC.
See cmake_bootstrap.log for compilers attempted.

報(bào)錯(cuò)2:Cannot find appropriate C compiler on this system.
----------------------------------------------- 

解決報(bào)錯(cuò)2:安裝編譯器
[chunli@CentOS cmake-3.8.0-rc2]$ sudo yum install gcc
[chunli@CentOS cmake-3.8.0-rc2]$ sudo yum install gcc-c++

繼續(xù)編譯cmake
[chunli@CentOS cmake-3.8.0-rc2]$ ./bootstrap
[chunli@CentOS cmake-3.8.0-rc2]$ echo $?
[chunli@CentOS cmake-3.8.0-rc2]$ make -j 4
[chunli@CentOS cmake-3.8.0-rc2]$ echo $?
[chunli@CentOS cmake-3.8.0-rc2]$ sudo make install 
[chunli@CentOS cmake-3.8.0-rc2]$ echo $?
cmake 安裝完成
-----------------------------------------------------


#繼續(xù)編譯clang
[chunli@CentOS llvm-3.9.1]$ cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$HOME/clang3.9 -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" llvm-3.9.1.src && make -j 4
CMake Error at cmake/modules/CheckCompilerVersion.cmake:12 (message):
Host GCC version must be at least 4.7!
Call Stack (most recent call first):
cmake/config-ix.cmake:14 (include)
CMakeLists.txt:461 (include)
報(bào)錯(cuò)3:Host GCC version must be at least 4.7!

-----------------------------------------------------------------
解決報(bào)錯(cuò)3:需要高版本編譯器
[chunli@CentOS ~]$ gcc --version      #查看系統(tǒng)gcc版本,確實(shí)低!
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17)

[chunli@CentOS ~]$ tar xf gcc-6.3.0.tar.bz2 
[chunli@CentOS ~]$ cd gcc-6.3.0
[chunli@CentOS gcc-6.3.0]$ ./contrib/download_prerequisites   #約10分鐘,自動(dòng)下載依賴包
[chunli@CentOS gcc-6.3.0]$ echo $?
[chunli@CentOS gcc-6.3.0]$ ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib && make -j 4 #約1小時(shí)
[chunli@CentOS gcc-6.3.0]$ echo $?                 #查看編譯是否完成
[chunli@CentOS gcc-6.3.0]$ sudo yum remove gcc     #確認(rèn)移除自帶的編譯器 
[chunli@CentOS gcc-6.3.0]$ sudo yum remove g++     #確認(rèn)移除自帶的編譯器
[chunli@CentOS gcc-6.3.0]$ sudo yum remove gcc-c++ 
[chunli@CentOS gcc-6.3.0]$ gcc                     #檢查是否真的移除了 
-bash: gcc: command not found                        
[chunli@CentOS gcc-6.3.0]$ g++
-bash: g++: command not found
[chunli@CentOS gcc-6.3.0]$ sudo make install       #開始安裝最新的編譯器
[chunli@CentOS gcc-6.3.0]$ echo $?
[chunli@CentOS gcc-6.3.0]$ gcc --version           #檢查新版的編譯器
gcc (GCC) 6.3.0
[chunli@CentOS gcc-6.3.0]$ g++ --version
g++ (GCC) 6.3.0
編譯器安裝完成
-------------------------------------------------------
	
#繼續(xù)編譯clang, 
[chunli@CentOS llvm-3.9.1]$ cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$HOME/clang3.9 -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" llvm-3.9.1.src && make -j 4
CMake Error at CMakeLists.txt:48 (project):
  The CMAKE_C_COMPILER:
    /usr/bin/cc
CMake Error at CMakeLists.txt:48 (project):
  The CMAKE_CXX_COMPILER:
    /usr/bin/c++
CMake Error at CMakeLists.txt:48 (project):
  The CMAKE_ASM_COMPILER:
    /usr/bin/cc
  然而又報(bào)錯(cuò)啦4:找不到編譯器 


-----------------------------------
報(bào)錯(cuò)4, 解決方案
[chunli@CentOS llvm-3.9.1]$ which gcc
/usr/local/bin/gcc
[chunli@CentOS llvm-3.9.1]$ which g++
/usr/local/bin/g++

設(shè)置編譯器路徑,繼續(xù)編譯clang
[chunli@CentOS llvm-3.9.1]$ cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$HOME/clang3.9 -DCMAKE_ASM_COMPILER=/usr/local/bin/gcc -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" llvm-3.9.1.src && make -j 4

----------------------------
#繼續(xù)編譯clang, 
[chunli@CentOS llvm-3.9.1]$ cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$HOME/clang3.9 -DCMAKE_ASM_COMPILER=/usr/local/bin/gcc -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" llvm-3.9.1.src && make -j 4
CMake Error at CMakeLists.txt:488 (message):
Python 2.7 or newer is required

報(bào)錯(cuò)5:需求新版的python
------------------------------	

報(bào)錯(cuò)5 解決方法:編譯安裝python2.7
[chunli@CentOS llvm-3.9.1]$ python --version  #查看當(dāng)前python版本
Python 2.6.6
[chunli@CentOS llvm-3.9.1]$ yum list | grep python | grep 2.7  #倉庫沒有2.7版本

[chunli@CentOS ~]$ tar xf Python-2.7.13.tar.xz 
[chunli@CentOS ~]$ cd Python-2.7.13
[chunli@CentOS Python-2.7.13]$ ./configure --prefix=$HOME/python-2.7 #安裝位置隨意,自己家有寫權(quán)限
[chunli@CentOS Python-2.7.13]$ echo $?
[chunli@CentOS Python-2.7.13]$ make -j 4
[chunli@CentOS Python-2.7.13]$ make install  
[chunli@CentOS Python-2.7.13]$ echo $?

修改python路徑
[chunli@CentOS Python-2.7.13]$ which python
/usr/bin/python
[chunli@CentOS Python-2.7.13]$ ll /usr/bin/python*
-rwxr-xr-x. 2 root root 6088 Nov 22  2013 /usr/bin/python
lrwxrwxrwx. 1 root root    6 Mar  5 23:29 /usr/bin/python2 -> python
-rwxr-xr-x. 2 root root 6088 Nov 22  2013 /usr/bin/python2.6
[chunli@CentOS Python-2.7.13]$ sudo ln -s -f $HOME/python-2.7/bin/python2.7 /usr/bin/python
[chunli@CentOS Python-2.7.13]$ python --version
Python 2.7.13

新版python就這樣安裝好了
-----------------------

#繼續(xù)編譯clang,
[chunli@CentOS llvm-3.9.1]$ cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$HOME/clang3.9 -DCMAKE_ASM_COMPILER=/usr/local/bin/gcc -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" llvm-3.9.1.src && make -j 4

../../bin/llvm-tblgen: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ../../bin/llvm-tblgen)
../../bin/llvm-tblgen: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ../../bin/llvm-tblgen)
../../bin/llvm-tblgen: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ../../bin/llvm-tblgen) '

報(bào)錯(cuò)6 ,C++庫版本低!
------------------------------

解決報(bào)錯(cuò)6:手動(dòng)修改舊版c++庫文件
[chunli@CentOS ~]$ find /usr/local/ -name 'libstdc++.so.6*'
/usr/local/lib/libstdc++.so.6.0.22
/usr/local/lib/libstdc++.so.6
[chunli@CentOS ~]$ ll /usr/lib/libstdc++.so.6
lrwxrwxrwx. 1 root root 19 Mar 11 18:23 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.13
[chunli@CentOS ~]$ sudo ln -fs /usr/local/lib/libstdc++.so.6.0.22 /usr/lib/libstdc++.so.6

----------------------------------------------------------------------
#繼續(xù)編譯clang
[chunli@CentOS llvm-3.9.1]$ cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$HOME/clang3.9 -DCMAKE_ASM_COMPILER=/usr/local/bin/gcc -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" llvm-3.9.1.src && make -j 4
[chunli@CentOS llvm-3.9.1]$ echo $?
終于編譯好了!


6, 編譯 ycm_core

Compile the ycm_core library that YCM needs. This library is the C++ engine that YCM uses to get fast completions.

[chunli@CentOS ~]$ mkdir ycm_build
[chunli@CentOS ~]$ cd ycm_build

#開始編譯ycm_core
[chunli@CentOS ycm_build]$ cmake -G "Unix Makefiles" -DEXTERNAL_LIBCLANG_PATH=$HOME/llvm-3.9.1/lib/libclang.so . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp

報(bào)錯(cuò)7: 找不到python-devel
CMake Error at /usr/local/share/cmake-3.8/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
  (Required is at least version "2.6")
---------------------------------------
解決報(bào)錯(cuò)7 安裝python-dev
[chunli@CentOS ycm_build]$ sudo yum install python-devel

----------------------------------
報(bào)錯(cuò)8,發(fā)現(xiàn)yum不能用  ,是因?yàn)閜ython的問題
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named yum
-------------------------------------   
解決報(bào)錯(cuò)8 ,修改yum配置
[chunli@CentOS ycm_build]$ which python
/usr/bin/python
[chunli@CentOS ycm_build]$ ll /usr/bin/python*
lrwxrwxrwx. 1 root root   37 Mar 11 21:22 /usr/bin/python -> /home/chunli/python-2.7/bin/python2.7
lrwxrwxrwx. 1 root root    6 Mar  5 23:29 /usr/bin/python2 -> python
-rwxr-xr-x. 1 root root 6088 Nov 22  2013 /usr/bin/python2.6
[chunli@CentOS ycm_build]$ 	

[chunli@CentOS ycm_build]$ sudo vim /usr/bin/yum
[chunli@CentOS ycm_build]$ cat /usr/bin/yum
#!/usr/bin/python       #刪除此行
#!/usr/bin/python2.6  #增加此行

[chunli@CentOS ycm_build]$ sudo yum install python-devel
yum, python-devel解決了

-----------------------------------
#繼續(xù)編譯ycm_core 
[chunli@CentOS ycm_build]$ cmake -G "Unix Makefiles" -DEXTERNAL_LIBCLANG_PATH=$HOME/llvm-3.9.1/lib/libclang.so . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
[chunli@CentOS ycm_build]$ echo $?
[chunli@CentOS ycm_build]$ cmake --build . --target ycm_core --config Release
[chunli@CentOS ycm_build]$ echo $?

#ycm_core 完成!

[chunli@CentOS ycm_build]$ cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim/
[chunli@CentOS ycm_build]$ vim ~/.vimrc #添加兩行
let g:ycm_server_python_interpreter='/usr/bin/python'
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'

================================================
#啟動(dòng)vim 報(bào)錯(cuò)9,
The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). 
Unexpected error while loading the YCM core library. 
Use the ':YcmToggleLogs' command to check the logs. 

:YcmToggleLogs           #查看錯(cuò)誤信息
Available logfiles are:                                                                                                                                                      
ycm_jHhxre.log
ycmd_50555_stderr_V6wuYO.log
ycmd_50555_stdout_Rm520B.log
Press ENTER or type command to continue

在ycm_jHhxre.log文件中全是報(bào)錯(cuò):
Failed to establish a new connection

在ycmd_50555_stderr_V6wuYO.log文件中報(bào)錯(cuò)
ImportError: /usr/lib/libstdc++.so.6: version 'GLIBCXX_3.4.20' not found (required by /home/chunli/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/../ycm_core.so) 

文件ycmd_50555_stdout_Rm520B.log是空的
==========================================
解決報(bào)錯(cuò)9, GLIBCXX_3.4.20 not found
[chunli@CentOS ~]$ find /usr/ -name 'libstdc++.so.6*'
/usr/local/lib/libstdc++.so.6.0.22
/usr/local/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.13
[chunli@CentOS ~]$ 

[chunli@CentOS ~]$ sudo ln -f -s /usr/local/lib/libstdc++.so.6.0.22 /usr/lib/libstdc++.so.6
[chunli@CentOS ~]$ ll /usr/lib/libstdc++.so.6*
lrwxrwxrwx. 1 root root     34 Mar 12 01:27 /usr/lib/libstdc++.so.6 -> /usr/local/lib/libstdc++.so.6.0.22
-rwxr-xr-x. 1 root root 942040 May 10  2016 /usr/lib/libstdc++.so.6.0.13
[chunli@CentOS ~]$


ycm其他命令
:YcmRestartServer
:messages
:YcmDiags
:YcmDebugInfo


7 效果圖

歷經(jīng)千辛萬苦, ycm終于可以正常使用了!

先來幾種自動(dòng)補(bǔ)全圖!!!!


結(jié)構(gòu)體補(bǔ)全1

CentOS 6.5安裝YouCompleteMe使用vim C/C++語法自動(dòng)補(bǔ)全


結(jié)構(gòu)體補(bǔ)全2

CentOS 6.5安裝YouCompleteMe使用vim C/C++語法自動(dòng)補(bǔ)全

頭文件補(bǔ)全

CentOS 6.5安裝YouCompleteMe使用vim C/C++語法自動(dòng)補(bǔ)全

語法檢查

CentOS 6.5安裝YouCompleteMe使用vim C/C++語法自動(dòng)補(bǔ)全

看看補(bǔ)全Linux系統(tǒng)結(jié)構(gòu)體補(bǔ)全怎么樣


將C頭文件路徑寫入配置

[chunli@CentOS ~]$ vim ~/.vim/.ycm_extra_conf.py
在flags中尾端追加2行
'-isystem',
'/usr/include/',


1級(jí)補(bǔ)全

CentOS 6.5安裝YouCompleteMe使用vim C/C++語法自動(dòng)補(bǔ)全

CentOS 6.5安裝YouCompleteMe使用vim C/C++語法自動(dòng)補(bǔ)全

2級(jí)補(bǔ)全,看起來還不錯(cuò)

CentOS 6.5安裝YouCompleteMe使用vim C/C++語法自動(dòng)補(bǔ)全

3 無法補(bǔ)全結(jié)構(gòu)體中的函數(shù)指針成員,必須自己敲

CentOS 6.5安裝YouCompleteMe使用vim C/C++語法自動(dòng)補(bǔ)全

CentOS 6.5安裝YouCompleteMe使用vim C/C++語法自動(dòng)補(bǔ)全

ycm的工作模式,很明顯是CS模式

沒有運(yùn)行vim時(shí),沒有ycm進(jìn)程
[chunli@CentOS ~]$ sudo ps aux| grep ycm
chunli    3408  0.0  0.0   4356   744 pts/3    S+   01:40   0:00 grep ycm

打開一個(gè)C文件,進(jìn)入自動(dòng)補(bǔ)全狀態(tài)

CentOS 6.5安裝YouCompleteMe使用vim C/C++語法自動(dòng)補(bǔ)全

[chunli@CentOS ~]$ sudo ps aux | grep ycm   #會(huì)看到一個(gè)ycm守護(hù)進(jìn)程
chunli    4075 20.0  0.4 406820 19460 ?        Ssl  01:48   0:00 /usr/bin/python /home/chunli/.vim/bundle/YouCompleteMe/python/ycm/../../third_party/ycmd/ycmd --port=54985 --options_file=/tmp/tmp0bDvy3 --log=info --idle_suicide_seconds=10800 --stdout=/tmp/ycmd_39292_stdout_oaYfWe.log --stderr=/tmp/ycmd_39292_stderr_VWlF6c.log
chunli    4114  0.0  0.0   4356   720 pts/2    S+   01:49   0:00 grep ycm

[chunli@CentOS ~]$ sudo netstat -tunlap | grep python
tcp        0      0 127.0.0.1:49705             0.0.0.0:*                   LISTEN      4233/python         
tcp        0      0 127.0.0.1:49705             127.0.0.1:41286             ESTABLISHED 4233/python         
tcp        0      0 127.0.0.1:49705             127.0.0.1:41288             ESTABLISHED 4233/python         
tcp        0      0 127.0.0.1:49705             127.0.0.1:41287             ESTABLISHED 4233/python         
[chunli@CentOS ~]$

8 清理工作:

[chunli@CentOS ~]$ rm -rf cmake-3.8.0-rc2*
[chunli@CentOS ~]$ rm -rf Python-2.7.13.* 
[chunli@CentOS ~]$ rm -rf python-2.7/
[chunli@CentOS ~]$ rm -rf clang3.9/
[chunli@CentOS ~]$ rm -rf llvm-3.9.1/
[chunli@CentOS ~]$ rm -rf gcc-6.3.0*
[chunli@CentOS ~]$ rm -rf ycm_build/

clang 編譯好了之后,不用安裝,僅僅為了得到libclang.so

python2.7 也是臨時(shí)的,作為clang的依賴 不需要安裝什么第三方庫

gcc 也可以是臨時(shí)的, 用來編譯clang, 還可以得到libstdc++.so

奇怪的問題,我前面已經(jīng)替換過這個(gè)文件/usr/bin/python,我以為清理python2.7.13后vim不能用了.

但是vim 的自動(dòng)補(bǔ)全沒有任何影響,來看看/usr/bin/python --version 又是2.6版本, 郁悶!

難道是安裝python-devel時(shí)自動(dòng)恢復(fù)/usr/bin/python為python2.6了 ? 

[chunli@CentOS ~]$ ll /usr/bin/python*
-rwxr-xr-x. 2 root root 3592 Aug 18  2016 /usr/bin/python
lrwxrwxrwx. 1 root root    6 Mar 12 00:44 /usr/bin/python2 -> python
-rwxr-xr-x. 2 root root 3592 Aug 18  2016 /usr/bin/python2.6
-rwxr-xr-x. 1 root root 1418 Aug 18  2016 /usr/bin/python2.6-config
lrwxrwxrwx. 1 root root   16 Mar 12 00:44 /usr/bin/python-config -> python2.6-config
[chunli@CentOS ~]$


接下來看:

 YouCompleteMe自動(dòng)補(bǔ)全C++程序原創(chuàng)


將成功安裝的YouCompleteMe移植到同平臺(tái)機(jī)器里

CentOS 6.5 安裝YouCompleteMe 報(bào)錯(cuò)匯總

ubuntu 14.04 安裝vim YouCompleteMe


網(wǎng)站標(biāo)題:CentOS6.5安裝YouCompleteMe使用vimC/C++語法自動(dòng)補(bǔ)全
鏈接地址:http://weahome.cn/article/pejcoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部