没有系统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>']
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章