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檔案
- 如果不需要C族語言的語義支援,在ycm_build目錄下執行
#後面的是你的ycm目錄
cmake -G "Unix Makefiles" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
- 如果需要C族語言的語義支援,有三種安裝方式
- 從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
- 如果想用系統的libclang:
其中
cmake -G "Unix Makefiles" -DUSE_SYSTEM_LIBCUnix Makefiles" -DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
是你系統下的clang路徑
/path/to/libclang.so
生成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' "設定警告字元