YouCompleteMe安裝


在 centos7 下面安裝 :

centos8 默認 vim8.0

[root@localhost ~]# vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Nov 11 2019 19:08:24)
Included patches: 1-1763

 

centos7 安裝 cmake

yum install cmake

[root@localhost ~]# cmake --version
cmake version 3.11.4
# 安裝其他依賴庫
$ yum install python-devel libffi-devel graphviz-devel elfutils-libelf-devel readline-devel libedit-devel libxml2-devel protobuf-devel gtext-devel doxygen swig

 

編譯安裝llvm-clang 安裝clang標准庫 (超級麻煩,折騰了好幾天,centos8 好像不能用這個版本的)

准備 LLVM 源碼

下載文件

http://releases.llvm.org/down...
LLVM Test Suite 都下載,放在一起。

 

 我的包都放到 roo 下的  自定義的 ll 文件夾下面 全部解壓

例如:   tar Jxvf cfe-6.0.0.src.tar.xz

tar Jxvf cfe-6.0.0.src.tar.xz &&  tar Jxvf clang-tools-extra-6.0.0.src.tar.xz && tar Jxvf compiler-rt-6.0.0.src.tar.xz &&  tar Jxvf libcxx-6.0.0.src.tar.xz && tar Jxvf libcxxabi-6.0.0.src.tar.xz &&  tar Jxvf libunwind-6.0.0.src.tar.xz &&  tar Jxvf lld-6.0.0.src.tar.xz && tar Jxvf lldb-6.0.0.src.tar.xz &&  tar Jxvf llvm-6.0.0.src.tar.xz &&  tar Jxvf openmp-6.0.0.src.tar.xz && tar Jxvf polly-6.0.0.src.tar.xz

 

[root@localhost ll]# ls
cfe-6.0.0.src                       compiler-rt-6.0.0.src         libcxxabi-6.0.0.src         lld-6.0.0.src          llvm-6.0.0.src           polly-6.0.0.src
cfe-6.0.0.src.tar.xz                compiler-rt-6.0.0.src.tar.xz  libcxxabi-6.0.0.src.tar.xz  lld-6.0.0.src.tar.xz   llvm-6.0.0.src.tar.xz    polly-6.0.0.src.tar.xz
clang-tools-extra-6.0.0.src         libcxx-6.0.0.src              libunwind-6.0.0.src         lldb-6.0.0.src         openmp-6.0.0.src
clang-tools-extra-6.0.0.src.tar.xz  libcxx-6.0.0.src.tar.xz       libunwind-6.0.0.src.tar.xz  lldb-6.0.0.src.tar.xz  openmp-6.0.0.src.tar.xz
#解壓后移動文件夾:
[root@localhost ll]# mv cfe-6.0.0.src llvm-6.0.0.src/tools/clang
[root@localhost ll]# mv lld-6.0.0.src llvm-6.0.0.src/tools/lld [root@localhost ll]# mv polly-6.0.0.src llvm-6.0.0.src/tools/polly [root@localhost ll]# mv lldb-6.0.0.src llvm-6.0.0.src/tools/lldb [root@localhost ll]# mv openmp-6.0.0.src llvm-6.0.0.src/projects/openmp [root@localhost ll]# mv libcxx-6.0.0.src llvm-6.0.0.src/projects/libcxx [root@localhost ll]# mv libcxxabi-6.0.0.src llvm-6.0.0.src/projects/libcxxabi [root@localhost ll]# mv libunwind-6.0.0.src llvm-6.0.0.src/projects/libunwind [root@localhost ll]# mv compiler-rt-6.0.0.src llvm-6.0.0.src/projects/compiler-rt [root@localhost ll]# mv clang-tools-extra-6.0.0.src llvm-6.0.0.src/tools/clang/tools/extra

在    cfe-6.0.0.src  文件的同一級 建一個文件夾 build

[root@localhost ~]# mkdir build
[root@localhost ~]# cd build
[root@localhost build]# 

 

然后Configure and build LLVM and Clang:(都是在build文件進行)

[root@localhost build]# cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On ../cfe-6.0.0.src /

然后 make && make install

[root@localhost build]# make && make install

 

 

 

安裝Vundle

Vundle是Vim的插件管理插件,安裝詳細請參照Vundle官方網站

下載YouCompleteMe源碼:

git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe

然后在在vimrc文件中加入:

Bundle 'Valloric/YouCompleteMe'

執行命令:

cd ~/.vim/bundle/YouCompleteMe
./install.sh --clang-completer

YouCompleteMe配置

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => YouCompleteMe  代碼自動補全
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Bundle 'Valloric/YouCompleteMe'
" youcompleteme  默認tab  s-tab 和自動補全沖突
" let g:ycm_key_list_select_completion=['<c-n>']
" let g:ycm_key_list_select_completion = ['<Down>']
" let g:ycm_key_list_previous_completion=['<c-p>']
" let g:ycm_key_list_previous_completion = ['<Up>']
let g:ycm_confirm_extra_conf=0      " 關閉加載.ycm_extra_conf.py提示
let g:ycm_complete_in_comments = 1  "在注釋輸入中也能補全
let g:ycm_complete_in_strings = 1   "在字符串輸入中也能補全
let g:ycm_collect_identifiers_from_tags_files=1                 " 開啟 YCM 基於標簽引擎
let g:ycm_collect_identifiers_from_comments_and_strings = 1   "注釋和字符串中的文字也會被收入補全
let g:ycm_seed_identifiers_with_syntax=1   "語言關鍵字補全, 不過python關鍵字都很短,所以,需要的自己打開
let g:ycm_collect_identifiers_from_tags_files = 1
let g:ycm_min_num_of_chars_for_completion=2                     " 從第2個鍵入字符就開始羅列匹配項
" 引入,可以補全系統,以及python的第三方包 針對新老版本YCM做了兼容
" old version
if !empty(glob("~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"))
    let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"
endif
" new version
if !empty(glob("~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"))
    let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"
endif

"mapping
nmap <leader>gd :YcmDiags<CR>
nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR>           " 跳轉到申明處
nnoremap <leader>gf :YcmCompleter GoToDefinition<CR>            " 跳轉到定義處
nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>

" 直接觸發自動補全
let g:ycm_key_invoke_completion = '<C-Space>'
" 黑名單,不啟用
let g:ycm_filetype_blacklist = {
      \ 'tagbar' : 1,
      \ 'gitcommit' : 1,
      \}
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM