天天看點

vim安裝編譯安裝vimYCM編譯安裝

vim安裝

  • 編譯安裝vim
    • 下載下傳依賴
    • 克隆vim
    • 删除舊的vim
    • 編譯安裝
  • YCM編譯安裝
    • 擷取ycm
    • 安裝依賴
    • 生成makefile檔案
    • 生成ycm_core
    • 進入ycm目錄安裝
    • 配置.vimrc

編譯安裝vim

下載下傳依賴

sudo apt-get 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 liblua5.1 lua5.1-dev libperl-dev git
           

克隆vim

git clone https://github.com/vim/vim.git

           

删除舊的vim

dpkg -l | grep vim   #查詢是否含有舊的vim
sudo apt-get remove vim-common vim-tiny   		#删除舊的vim
           

編譯安裝

配置安裝

./configure --with-features=huge --enable-python3interp --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ --enable-rubyinterp --enable-luainterp --enable-perlinterp --with-python3-config-dir=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/ --enable-multibyte --enable-cscope      --prefix=/usr/local/vim/
           

下面是參數解釋

–with-features=huge:支援最大特性

–enable-rubyinterp:打開對ruby編寫的插件的支援

–enable-pythoninterp:打開對python編寫的插件的支援

–enable-python3interp:打開對python3編寫的插件的支援

–enable-luainterp:打開對lua編寫的插件的支援

–enable-perlinterp:打開對perl編寫的插件的支援

–enable-multibyte:打開多位元組支援,可以在Vim中輸入中文

–enable-cscope:打開對cscope的支援

–with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ 指定python 路徑

–with-python-config-dir=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/指定python3路徑

–prefix=/usr/local/vim:指定将要安裝到的路徑(自行建立)

然後進行make安裝

YCM編譯安裝

擷取ycm

通過vundle擷取

在vimrc中添加

set rtp+=~/.vim/bundle/Vundle.vim           #指定vundle路徑
call vundle#begin()
Plugin 'Valloric/YouCompleteMe'
call vundle#end()
           

通過git安裝

git clone --recursive https://github.com/Valloric/YouCompleteMe.git

擷取最新的倉庫

使用

git submodule update --init --recursive

确認倉庫的完整性

安裝依賴

安裝cmake,這是編譯安裝ycm_core所需工具,ycm_core是用來快速獲得C++的引擎

安裝python-dev,python3-dev,

在編譯安裝前,在/tmp目錄下建立一個ycm_build,用于放置ycm的編譯結果,以便等下安裝

cd /tmp
mkdir ycm_build
cd ycm_build
           

生成makefile檔案

  1. 如果不需要C族語言的語義支援,在ycm_build目錄下執行

    cmake -G "Unix Makefiles" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp

    #後面的是你的ycm目錄
  2. 如果需要C族語言的語義支援,有三種安裝方式
    1. 從llvm的官網下載下傳了LLVM+Clang的二進制包,然後解壓到一個目錄

      /tmp/ycm_tmpe

      該目錄下有bin, lib, include等檔案夾

      然後執行

      cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=/tmp/ycm_tmpe . ~/. vim/bundle/YouCompleteMe/third_party/ycmd/cpp

    2. 如果想用系統的libclang:

      cmake -G "Unix Makefiles" -DUSE_SYSTEM_LIBCUnix Makefiles" -DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp

      其中

      /path/to/libclang.so

      是你系統下的clang路徑

生成ycm_core

cmake --build . --target ycm_core --config Release
           

進入ycm目錄安裝

cd ~/.vim/bundle/YouCompleteMe/
python ./install.py --clang-completer
           

配置.vimrc

複制.ycm_extra_conf.py檔案

cp ~/.vim/bundle/YouCompleteMe/third_party/.ycm_extra_conf.py ~/.vim/
           
""""""""""""""""""""""""""""
" YouCompleteMe
" """""""""""""""""""""""""
let g:ycm_server_python_interpreter='/usr/bin/python2'			"你的python目錄
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'		"你的ycm配置目錄
autocmd InsertLeave * if pumvisible() == 0|pclose|endif "離開插入模式後自動關閉預覽視窗"
let g:ycm_collect_identifiers_from_tags_files = 1           " 開啟 YCM基于标簽引擎
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注釋與字元串中的内容也用于補全
let g:syntastic_ignore_files=[".*\.py$"]
let g:ycm_seed_identifiers_with_syntax = 1                  " 文法關鍵字補全
let g:ycm_complete_in_comments = 1
let g:ycm_confirm_extra_conf = 0                            " 關閉加載.ycm_extra_conf.py提示
let g:ycm_key_list_select_completion = ['<m-n>', '<Down>']  " 映射按鍵,沒有這個會攔截掉tab, 導緻其他插件的tab不能用.
let g:ycm_key_list_previous_completion = ['<m-p>', '<Up>']
let g:ycm_complete_in_comments = 1                          " 在注釋輸入中也能補全
let g:ycm_complete_in_strings = 1                           " 在字元串輸入中也能補全
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注釋和字元串中的文字也會被收入補全
"let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
let g:ycm_show_diagnostics_ui = 1                           " 文法檢查
"inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"             " 回車即選中目前項
nnoremap <c-O> :YcmCompleter GoToDefinitionElseDeclaration<CR>     " 跳轉到定義處
let g:ycm_min_num_of_chars_for_completion=2                 " 從第2個鍵入字元就開始羅列比對項
let g:ycm_warning_symbol = 'O'                              "設定警告字元