沒有系統root權限 vim安裝YouCompleteMe插件(ycm不依賴系統)

  1. 編譯vim,YCM要求vim版本大於7.4.1579,所以需要先編譯vim
  2. List item
  3. List item

1. 編譯vim,YCM要求vim版本大於7.4.1579,所以需要先編譯vim

  1. 安裝虛擬機裝上centos7
  2. 下載vim對應版本的源碼,https://github.com/vim/vim,我下載的是7.4.1580(https://github.com/vim/vim/archive/v7.4.1580.zip)
  3. 安裝依賴
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
  1. 編譯安裝
    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

  1. 安裝YouCompleteMe
    在.vimrc中插入
    Plugin ‘Valloric/YouCompleteMe’
  2. 利用git下載安裝包
    git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
    然後進入YouCompeteMe所在的文件夾:~/.vim/bundle/YouCompleteMe 更新運行:git submodule update --init --recursive
  3. 安裝
    python3 install.py --clang-completer --system-libclang
    其中編譯安裝的過程中,不斷提示編譯所缺少的依賴,會有錯誤提示,按照提示安裝缺少的依賴就好,其中比較重要的是clang,所以先需要運行
  4. 安裝clang sudo apt-get install clang
  5. 完成以後再.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>']
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章