- 編譯vim,YCM要求vim版本大於7.4.1579,所以需要先編譯vim
- List item
- List item
1. 編譯vim,YCM要求vim版本大於7.4.1579,所以需要先編譯vim
- 安裝虛擬機裝上centos7
- 下載vim對應版本的源碼,https://github.com/vim/vim,我下載的是7.4.1580(https://github.com/vim/vim/archive/v7.4.1580.zip)
- 安裝依賴
yum install -y gcc gcc-c++ ruby ruby-devel lua lua-devel \
ctags git python python-devel \
tcl-devel ncurses-devel \
perl perl-devel perl-ExtUtils-ParseXS \
perl-ExtUtils-CBuilder \
perl-ExtUtils-Embed
- 編譯安裝
unzip vim-7.4.1580.zip && cd vim-7.4.1580
./configure --with-features=huge
–enable-multibyte
–enable-rubyinterp=yes
–enable-pythoninterp=yes
–with-python-config-dir=/usr/lib64/python2.7/config
–enable-perlinterp=yes
–enable-luainterp=yes
–enable-cscope
–prefix=/usr/local
make VIMRUNTIMEDIR=/usr/local/share/vim/vim8
make install
5. vim-7.4.1580/src下有生成的vim,把vim拷貝到自己的開發機自己home目錄即可
安裝ycm
- 安裝YouCompleteMe
在.vimrc中插入
Plugin ‘Valloric/YouCompleteMe’ - 利用git下載安裝包
git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
然後進入YouCompeteMe所在的文件夾:~/.vim/bundle/YouCompleteMe 更新運行:git submodule update --init --recursive - 安裝
python3 install.py --clang-completer --system-libclang
其中編譯安裝的過程中,不斷提示編譯所缺少的依賴,會有錯誤提示,按照提示安裝缺少的依賴就好,其中比較重要的是clang,所以先需要運行 - 安裝clang sudo apt-get install clang
- 完成以後再.vimrc中添加
"vundle"
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'davidhalter/jedi-vim'
call vundle#end()
filetype plugin indent on
" YouCompleteMe
" Python Semantic Completion
let g:ycm_python_binary_path = '/usr/bin/python'
let g:ycm_server_python_interpreter='/usr/bin/python'
" C family Completion Path
let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py'
"let g:ycm_global_ycm_extra_conf='~/wly1/.ycm_extra_conf.py'
" 跳轉快捷鍵
nnoremap <c-j> :YcmCompleter GoToDeclaration<CR>|
nnoremap <c-l> :YcmCompleter GoToDefinition<CR>|
nnoremap <c-k> :YcmCompleter GoToDefinitionElseDeclaration<CR>|
" 停止提示是否載入本地ycm_extra_conf文件
let g:ycm_confirm_extra_conf = 0
" 語法關鍵字補全
let g:ycm_seed_identifiers_with_syntax = 1
" 開啓 YCM 基於標籤引擎
let g:ycm_collect_identifiers_from_tags_files = 1
" 從第2個鍵入字符就開始羅列匹配項
let g:ycm_min_num_of_chars_for_completion=2
" 在註釋輸入中也能補全
let g:ycm_complete_in_comments = 1
" 在字符串輸入中也能補全
let g:ycm_complete_in_strings = 1
" 註釋和字符串中的文字也會被收入補全
let g:ycm_collect_identifiers_from_comments_and_strings = 1
" 彈出列表時選擇第1項的快捷鍵(默認爲<TAB>和<Down>)
let g:ycm_key_list_select_completion = ['<TAB>','<C-j>']
" 彈出列表時選擇前1項的快捷鍵(默認爲<S-TAB>和<UP>)
let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>']
" 主動補全, 默認爲<C-Space>
"let g:ycm_key_invoke_completion = ['<C-Space>']
let g:ycm_key_invoke_completion='<C-;>'
" 停止顯示補全列表(防止列表影響視野), 可以按<C-Space>重新彈出
"let g:ycm_key_list_stop_completion = ['<C-y>']