Ubuntu18.04安裝Vim-plug與YCM


由於個人強迫症的原因,之前的ycm是通過vundle來管理的,這次想更新一下ycm發現問題太多,於是就重新裝了個Ubuntu虛擬機,用vim-plug來進行管理ycm及其他插件。

首先要換一下Ubuntu的默認源,換成國內的阿里源,提高下載速度

1、安裝gcc

裝好虛擬機之后發現沒有gcc,於是下了最新的gcc源碼自己編譯安裝:https://gcc.gnu.org/mirrors.html  選擇一個鏡像站下載源碼包:gcc-9.2.0.tar.xz,解壓后進入解壓后的目錄

1 cd gcc-9.2.0/
2 ./contrib/download_prerequisites

下載預裝環境包發現特別慢,然后發現直接去網址下載好 gmp、mpc、mpfr、isl 這四個包然后放在 gcc-9.2.0/ 的目錄下再執行download_prerequisites也是可以的:https://gcc.gnu.org/pub/gcc/infrastructure/

這里要注意下載包的版本為最新版本,比如我當時下載的版本為gmp-6.1.0、mpc-1.0.3、mpfr-3.1.4、isl-0.18

在后面的安裝過程中發現還需要gcc和make進行編譯,所以通過apt install來進行安裝

1 sudo apt install make
2 sudo apt install gcc

然后在 gcc-9.2.0/ 目錄下創建一個編譯目錄進行存放編譯文件,進入目錄配置

1 mkdir gcc-build
2 cd gcc-build
3 ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

開始編譯,然后編譯過程中出現了兩個錯誤,第一個類似下圖

1 configure:4284: $? = 0
2 configure:4273: gcc -V >&5
3 gcc: error: unrecognized command line option '-V'

百度加谷歌后發現問題解決方法為修改configure文件的4353行附近幾行代碼,對比圖如下

修改前                                                

 

修改后

    cat conftest.er1 >&5
    rm -f conftest.er1 conftest.err
  fi
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  if test $ac_status = 0; then 
    break
  fi

第二個問題則是因為我虛擬機分配內存及cpu數量不夠引起的,如下圖

這只需要在make的時候不用 -j4 選項就行了,只不過時間會久一點

1 sudo make -j2
2 sudo make install

至此GCC-9.2.0安裝完成;

參考博文鏈接:https://blog.csdn.net/yaoyutian/article/details/90761619

          https://superuser.com/questions/846768/gcc-unrecognized-command-line-options-v-and-qversion-with-autoconf

2、安裝git-2.25.0

強迫症把git也下載源碼重新編譯安裝了,結果在后面安裝vim-plug時出現了一個錯誤

1 fatal: Unable to find remote helper for 'https'

百度發現原來是少了一個依賴庫,執行命令

1 sudo apt install libcurl4-openssl-dev 

參考博文鏈接:https://stackoverflow.com/questions/8329485/unable-to-find-remote-helper-for-https-during-git-clone

3、安裝python-3.8.1

直接去python官網下載源碼:https://www.python.org/downloads/source/

配置前安裝一些必須的庫,configure時可以看到哪些庫沒有選擇性安裝之后再進行編譯

另外python3.8的ssl庫好像openssl是不能用的,改用libressl去官網下載源碼安裝:https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/

./configure --enable-optimizations
make
make install

參考博文:https://blog.csdn.net/tanmx219/article/details/86518446

4、安裝vim-8.2使其支持python3.8

下載vim8.2源碼:https://www.vim.org/mirrors.php

解壓后在壓縮包目錄編譯安裝

1 ./configure --with-features=huge \
2             --enable-multibyte \
3             --enable-python3interp=yes \
4             --with-python-config-dir=/usr/local/lib/python3.8/config-3.8-x86_64-linux-gnu \
5             --enable-rubyinterp=yes \
6             --enable-perlinterp=yes \
7             --enable-luainterp=yes \
8             --enable-cscope \
9             --prefix=/usr/local/vim82

參考博文:https://blog.csdn.net/weixin_34356310/article/details/93599143

5、安裝vim-plug及YCM

在命令行輸入curl命令完成vim-plug安裝

1 curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
2     https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

 然后安裝YCM,首先是開發工具

1 sudo apt install build-essential cmake python3-dev

然后在.vimrc里面加入幾行進行配置下載

1 call plug#begin('~/.vim/plugged')
2     Plug 'ycm-core/YouCompleteMe'
3 call plug#end()

YCM很大,而且國內與GitHub間的連接不穩定,所以這個過程可能會持續很久嘗試很多次,成功下載完之后進入目錄 ~/.vim/plugged/YouCompleteMe

1 python3 install.py --all

至此安裝完成,我還下載了vim的幾個插件和主題,詳見如下的.vimrc文件

 1 call plug#begin('~/.vim/plugged')
 2     Plug 'ycm-core/YouCompleteMe'
 3     Plug 'cormacrelf/vim-colors-github'
 4     Plug 'itchyny/lightline.vim'
 5     Plug 'https://github.com/altercation/vim-colors-solarized.git'
 6     Plug 'seebi/dircolors-solarized'
 7     Plug 'aruhier/gnome-terminal-colors-solarized'
 8 call plug#end()
 9 
10 
11 set t_Co=256                                "開啟256色支持
12 set nocompatible                              "高亮顯示{, }, (, ), [,]的匹配情況
13 set backspace=indent,eol,start                "退格鍵設置
14 set showmatch                                "設置對應括號匹配高亮
15 set ts=4                                    "設置table鍵為四個空格
16 
17 
18 syntax enable
19 syntax on
20 
21 set cursorline
22 set cursorcolumn
23 
24 if has("autocmd")
25   au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
26 endif                                          "vim打開時光標跳到上次關閉時停留的位置
27 
28 set showmode                                "關閉在左下角顯示類似INSERT的狀態欄配合lightline使用
29 set laststatus=2                            "設置vim最下面兩行顯示狀態配合lightline使用
30 "set background=light
31 set background=dark
32 let g:solarized_termcolors=256                "solarized開啟256色
33 colorscheme solarized
34 "colorscheme github                            "colorscheme要放在call plug#end()后面,否則打開vim時會報錯
35 "let g:lightline = {'colorscheme':'solarized',} "設置lightline的顏色主題
36 
37 
38 "以下為YCM設置
39 let g:ycm_server_python_interpreter='/usr/local/bin/python3.8'
40 let g:ycm_global_ycm_extra_conf='~/.vim/plugged/YouCompleteMe/.ycm_extra_conf.py'
41 
42 "離開插入模式后自動關閉預覽窗口    
43 autocmd InsertLeave * if pumvisible() == 0|pclose|endif 
44 "讓vim補全菜單行為與一般IDE一致
45 set completeopt=longest,menu       
46                                    
47 "關閉加載.ycm_extra_conf.py提示    
48 let g:ycm_confirm_extra_conf=0     
49 " 開啟 YCM 基於標簽引擎            
50 let g:ycm_collect_identifiers_from_tags_files=1
51 " 從第2個鍵入字符就開始羅列匹配項  
52 let g:ycm_min_num_of_chars_for_completion=2
53 " 禁止緩存匹配項,每次都重新生成匹配項 
54 let g:ycm_cache_omnifunc=0         
55 " 語法關鍵字補全                   
56 let g:ycm_seed_identifiers_with_syntax=1
57                                    
58 "通過診斷功能強制重新編譯     
59 nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>    
60 "回車即選中當前項
61 inoremap <expr> <CR>  pumvisible() ? "\<C-y>" : "\<CR>" 
62 "在注釋輸入中也能補全              
63 let g:ycm_complete_in_comments = 1 
64 "在字符串輸入中也能補全            
65 let g:ycm_complete_in_strings = 1  
66 "注釋和字符串中的文字也會被收入補全
67 let g:ycm_collect_identifiers_from_comments_and_strings = 0

同時在.bashrc里面還需要配置來應用gnome-solarized

1 export PATH=/usr/local/vim82/bin:$PATH
2 alias vi='vim'
3 eval `dircolors ~/.vim/plugged/dircolors-solarized/dircolors.256dark`   #配置終端顏色適配vim的solarized
4 export TERM=xterm-256color                                              #設置terminal支持256色

參考博文:https://github.com/junegunn/vim-plug  

     https://github.com/ycm-core/YouCompleteMe#linux-64-bit

     https://github.com/aruhier/gnome-terminal-colors-solarized

 

YCM定義聲明及頭文件跳轉似乎需要額外配置:https://github.com/ycm-core/YouCompleteMe/issues/2249

 

 

至此應該全部配置已完成,由於本文花了幾天時間寫完,可能會有遺漏差錯,問題想法交流請在下方留言


免責聲明!

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



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