Centos7 + Vim8 + YouCompleteMe 配置vim编辑器自动补全

1、需要环境

  • Centos7系统
  • Vim8
  • python2.7(centos7自带python2.7)

2、本机环境查看

  • 输入命令vim可查看vim 的详细版本,如下图:
    Centos7 + Vim8 + YouCompleteMe 配置vim编辑器自动补全_第1张图片

  • 输入vim --version可查看vim的版本和支持的python版本,+python意思是支持python2,-python3意思是不支持python3,这里最多只能支持python2和3中的一个
    Centos7 + Vim8 + YouCompleteMe 配置vim编辑器自动补全_第2张图片

3、安装Vim8

因为YouCompleteMe(YCM)需要7.4以上的版本,centos7系统用yum -y install vim安装的vim是7.4版本,有可能不支持YCM(之前稀里糊涂用的vim7.4,YCM没安装成功,因为涉及的东西太多,最终也没确定是否是vim7.4的问题,这次索性直接用vim8版本)

卸载vim之前的旧版本并安装新版本

yum -y remove vim
cd ~/upload 
wget https://github.com/vim/vim/archive/master.zip
unzip master.zip
cd vim-master/src
./configure --prefix=/usr/local/vim8/ --enable-pythoninterp=yes --with-python-config-dir=/usr/lib/python2.7/config
或者
./configure --prefix=/usr/local/vim8/ --enable-pythoninterp=yes --with-python-config-dir=/usr/lib64/python2.7/config

#上一个命令的说明:
#只需要执行以上两个命令中的一个就行,主要是看config这个文件是在lib/python2.7还是在/lib64/python2.7里面
#--prefix=/usr/local/vim8/	指定vim8的安装目录
#--enable-pythoninterp=yes	使vim支持python,此项是必须项
#--with-python-config-dir=/usr/lib/python2.7/config 指定python版本,此项是必须项
make
make install
ln -s /usr/local/vim8/bin/vim /usr/bin/vim #设置vim8的软链接

输入vim --version验证是否是vim8版本以及是否支持python2或python3

4、安装Vundle插件管理器

vundle插件管理器相当于python中的pip。
pip可以快捷管理python中的模块,vundle可以快捷管理vim中的插件。

Vundle的安装:

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

5、修改vim的配置文件

cd ~/.vim
cp /etc/vimrc ~/.vim/
vim vimrc

在~/.vim/vimrc文件内容的最上面添加如下内容:
(这里注意一个问题,用SecureCRT软件远程linux,右键粘贴代码,会把下面的代码全部变为注释,解决此问题的方法是在linux中输入:set paste回车,再输入i进入插入模式,右键粘贴即可)

set nocompatible              " be iMproved, required
filetype off                  " required
 
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
 
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
 
" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required


set nocompatible "关闭与vi的兼容模式
set number "显示行号
set nowrap    "不自动折行
set showmatch    "显示匹配的括号
set scrolloff=3        "距离顶部和底部3行"
set encoding=utf-8  "编码
set fenc=utf-8      "编码
"set mouse=a        "启用鼠标
set hlsearch        "搜索高亮
syntax on    "语法高亮
au BufNewFile,BufRead *.py
\ set tabstop=4   "tab宽度
\ set softtabstop=4  
\ set shiftwidth=4   
\ set textwidth=79  "行最大宽度
\ set expandtab       "tab替换为空格键
\ set autoindent      "自动缩进
\ set fileformat=unix   "保存文件格式
set foldmethod=indent
set foldlevel=99
map <F8> :call RunPython()<CR>


let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py' "设置全局配置文件的路径
let g:ycm_seed_identifiers_with_syntax=1 " 语法关键字补全
let g:ycm_confirm_extra_conf=0 " 打开vim时不再询问是否加载>ycm_extra_conf.py配置
let g:ycm_key_invoke_completion = '' " ctrl + a 触发补全,防止与其他插件冲突
set completeopt=longest,menu "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
nnoremap jd :YcmCompleter GoToDefinitionElseDeclaration "定义跳转快捷键


func! RunPython()
    exec "W"
    if &filetype == 'python'
        exec "!time python2.7 %"
    endif
endfunc

6、安装YouCompleteMe(YCM)

先安装依赖包,再安装YCM

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

cd ~/upload
wget https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2.tar.gz
tar -xzvf cmake-3.13.2.tar.gz
cd cmake-3.13.2
./bootstrap && make && make install   #要执行好长时间(10分钟?)
git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
#如果上一行的语句有显示需要执行如下语句的告警,执行即可
git submodule update --init --recursive
cd ~/.vim/bundle/YouCompleteMe/
python install.py

执行vim命令,PluginInstall,安装vimrc文件中的其他插件(如果有的话),如下图:

Centos7 + Vim8 + YouCompleteMe 配置vim编辑器自动补全_第3张图片

7、验证自动补全

新建一个py文件,vim 1.py,比如想输入import,在输入‘im’后就看到了很多预选项,用方向键↑↓即可选择对应的选项,如下图:
Centos7 + Vim8 + YouCompleteMe 配置vim编辑器自动补全_第4张图片

8、参考教程

之前安装YouCompleteMe碰到很多问题导致安装不成功,有vim版本的原因,有依赖包的原因,有vimrc配置的原因,等等。参考的资料比较多,无法一一列举,只有自己成功操作一遍才能知道其中哪些是关键点。

  1. YouCompleteMe实现vim自动补全
  2. CentOS7.2安装Vim8和YouCompleteMe
  3. python学习-vim插件安装

你可能感兴趣的:(经验,学习总结)