ubuntu14.04 vim之YouCompleteMe安裝

一、注意:

1.需將vim版本升級,本人升級到當時最新版本8.1

2.vim8.1 默認只支持python3,不支持python2,而本人需要python2,故用源碼安裝vim8.1,沒有使用apt-get安裝方式

3. 網上查詢說YouCompleteMe只能支持python2或python3中一個

4.本人使用的vim插件管理器是vim addon manager, 簡稱VAM

5.在安裝完vim8.1後,使用VAM安裝YouCompleteMe後,其實並未真正安裝完全,需要編譯出ycm_core.so,生成後放在如下路徑

/root/.vim/vim-addons/YouCompleteMe/third_party/ycmd/ycm_core.so

6.在用VAM安裝YouCompleteMe插件後,利用./install.py --clang-completer指令編譯時出現如下錯誤:Could NOT find PythonLibs (missing:  PYTHON_INCLUDE_DIRS) (found version "2.7.6"),解決方式是sudo apt-get install build-essential cmake3

7.youcompleteme只支持原生態的python解釋器,因此在運行install.py前,應該指定使用原生態的python解釋器(lz是將anaconda的bin路徑臨時性的從PATH中移除),雖然使用anaconda的python解釋器也可以編譯成功,但是在vim中使用youcompleteme的時候會報錯。

二、基本流程

1.升級vim到8.1

2.安裝vim addon manger 插件管理器

3.利用VAM安裝YouCompleteMe

4.編譯YouCompleteMe

5.配置

三、參考文章:

主要文章

輔助文章

四、安裝流程

1、vim8.1安裝

  1. sudo apt install libncurses5-dev libgnome2-dev libgnomeui-dev \
    libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \
    libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \
    python3-dev ruby-dev lua5.1 liblua5.1-dev libperl-dev git
    注:由於Ubuntu已安裝python,故python-dev 和python3-dev捨去
  2. sudo apt remove vim vim-runtime gvim

  3. 隨便找個目錄進行如下:
  4. git clone https://github.com/vim/vim.git
  5. cd vim
  6. ./configure --with-features=huge --enable-multibyte --enable-rubyinterp=yes --enable-pythoninterp=yes --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu --enable-perlinterp=yes --enable-luainterp=yes --enable-gui=gtk2 --enable-cscope --prefix=/usr/local
  7. make VIMRUNTIMEDIR=/usr/local/share/vim/vim81
  8. sudo apt install checkinstall
  9. sudo checkinstall
  10. sudo make install
  11. sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 1
    sudo update-alternatives --set editor /usr/local/bin/vim
    sudo update-alternatives --install /usr/bin/vi vi /usr/local/bin/vim 1
    sudo update-alternatives --set vi /usr/local/bin/vim
  12. vim --version 查看版本

2、VAM安裝

  1. vim ~/.vimrc
  2. 將如下內用添加
  3.    1 " put this line first in ~/.vimrc
      2 set nocompatible | filetype indent plugin on | syn on
      3
      4 fun! SetupVAM()
      5   let c = get(g:, 'vim_addon_manager', {})
      6   let g:vim_addon_manager = c
      7   let c.plugin_root_dir = expand('$HOME', 1) . '/.vim/vim-addons'
      8
      9   " Force your ~/.vim/after directory to be last in &rtp always:
     10   " let g:vim_addon_manager.rtp_list_hook = 'vam#ForceUsersAfterDirectoriesToBeLast'
     11
     12   " most used options you may want to use:
     13   " let c.log_to_buf = 1
     14   " let c.auto_install = 0
     15   let &rtp.=(empty(&rtp)?'':',').c.plugin_root_dir.'/vim-addon-manager'
     16   if !isdirectory(c.plugin_root_dir.'/vim-addon-manager/autoload')
     17     execute '!git clone --depth=1 git://github.com/MarcWeber/vim-addon-manager '
     18         \       shellescape(c.plugin_root_dir.'/vim-addon-manager', 1)
     19   endif
     20
     21   " This provides the VAMActivate command, you could be passing plugin names, too
     22   call vam#ActivateAddons([], {})
     23 endfun
     24 call SetupVAM()
     25
     26 " ACTIVATING PLUGINS
     27
     28 " OPTION 1, use VAMActivate
     29 "VAMActivate taglist
     30
     31
     32 " OPTION 2: use call vam#ActivateAddons
     33 call vam#ActivateAddons(['taglist', 'YouCompleteMe'], {'auto_install' : 0})
  4. 注:行號33中'taglist', 'YouCompleteMe'是我要添加的插件名,之後運行vim後會自動下載VAM,並詢問是否安裝此兩個插件,安裝地址爲:~/.vim/vim-addons

3、YouCompleteMe插件安裝

  1. 若按上面步驟則以安裝好YouCompleteMe,若沒有則添加,VAM就是這麼安裝插件方便,只需要名字即可,當然VAM還有其他比較正規的安裝命令,這個只是激活插件,但沒有,所以VAM詢問是否安裝

4、編譯YouCompleteMe

  1. 進入YouCompleteMe目錄,我的是: ~/.vim/vim-addons/YouCompleteMe
  2. sudo apt-get install build-essential cmake3
  3. ./install.py --clang-completer   (--clang-completer 標誌支持c語言家族)
  4. 完成

5.配置

完成第四步已經成功,配置根據個人喜好,我也菜鳥,本人需要使用anaconda,所以如下:

vim ~/.bashrc 
export PATHONPATH=”/path/to/anaconda2/lib/python2.7/site-packages:$PYTHONPATH” 
退出 

source ~/.bashrc


補充注意:

gcc版本至少4.9,本人升級到5.0以上,很簡單指令


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章