- 编译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>']