这篇文章好多图片都挂掉了,对这篇文章有兴趣的话,可以去我的CSDN看看
这几天的经历
首先感谢各位乐意分享的爱折腾的程序员们,这几天翻过的文章太多了,就不一一点名了。没有你们,我就不会踩这么多坑,哈哈开玩笑的~
然后讲讲这几天的经历,没耐心的朋友可以跳过这段,我将从第二段开始讲述安装过程。这几天为了安装这个YouCompleteMe可是说是把能踩到的坑全踩了一遍,最后总算是安装成功了一大半。为什么说一大半,因为我安装成功的是基于centos7自带的python2.7,要想支持python3.6,根据官方的文章来看,也是一样的流程,不过我试的时候是失败告终。然后下面贴一下配置成功后的效果,以及参考过的比较有用的文章还有坑。
[图片上传失败...(image-41d78-1559663399724)]
[图片上传失败...(image-481273-1559663399724)]
- 可以参考以下文章去扩展VIM:Vim与Python真乃天作之合:打造强大的Python开发环境
- 这个是我根据上面那篇文章所配置的vimrc文件,可供参考,点击下载。下载后将文件改名成.vimrc,然后扔进centos'~/'下,进入vim,输入:PluginInstall,等待插件下载完成即可使用。提示没有该命令的,请安装vundle插件。然后vimrc文件里有中文说明,utf-8编码,unix格式,还不知道操作的可以去看看上面提到的文章。
- 在windows下编辑的文件,发送到linux后,会存在一个格式的问题,可以参考这篇文章:扩展vim遇到的问题-windows与linux的文件格式问题
- 然后是升级vim8所遇到的问题,为什么要升级vim8,因为ycm支持的VIM版本需要高于7.4.15。shell中输入vim,进入vim界面的文字说明可以看到系统自带版本是7.4.16。这个版本不是高于7.4.15吗?为什么还要升级,你不升级VIM直接装ycm插件,就知道原因了。
- 升级vim8最大的问题就是如何设置vim8支持python。可参考:源码编译vim8 github文档
- 网上有些文章有提到vim8只支持py3,我的亲身经历证明这是错误的。但有一点是正确的,那就是编译vim8时,不能同时设置py2和py3的支持,只能选择其中一个版本,这点在github中也有提到,原文:"You can only use Python 2 or Python 3. If you try to compile vim with both python-config-dir and python3-config-dir, it will give you an error YouCompleteMe unavailable: requires Vim compiled with Python (2.6+ or 3.3+) support."
- 如何在centos7中安装py3,并使得py3与系统自带的py2.7共存。可参考:centos7安装py3,并使得与系统自带的py2共存
- gvim与vim的区别,上面贴出的截图就是使用的gvim。我的理解是gvim是vim的图形界面,也就是gui vim。也就是说,gvim和vim本质上是同一个东西,gvim是vim的图形界面而已,重点来了,gvim比vim要好看很多!!!什么?还有其他的一些特性区别是什么?难道好看还不够吗!(不过说实话,gvim的ycm自动补全的速度明显比vim慢了一个档次,这一点同样体现在其他一些插件上)
接下来就是具体安装过程
- 下载vim8源码,我将他存放在~/src文件夹下,下载完成后得到一个名为vim8的文件
cd ~/src
git clone https://github.com/vim/vim.git
- 重点步骤,安装vim以及开启vim8支持python2.7所需的软件依赖
yum install python-devel ncurses-devel
# 如果想开启vim8支持python3,需要下载以下软件依赖
yum install python3-devel ncurses-devel
- 可选步骤,如果想安装gvim的话,需要额外的软件依赖
yum install libXt-devel gtk2-devel
-
进入vim8文件夹,执行configure自检脚本,可以自行添加或删除所不需要的选项。(切忌,万不可同时设置py2和py3的支持,只能选其中一个,想设置python3支持,请自行删除下面的py2支持,添加py3支持)。
- 删除之前的配置,如果你以前编译过Vim
make distclean
-
进入下载好的vim文件夹中
``` cd vim ```
-
启动自检程序,配置需要的功能,<font color="red">支持Python的版本以及路径需要自行修改</font>
./configure --with-features=huge \ --enable-multibyte=yes \ --enable-pythoninterp=yes \ --with-python-config-dir=/usr/lib/python2.7/config \ --prefix=/usr/local/vim \ --enable-gui=gtk2 \ --enable-cscope=yes \ --enable-gui=yes
这里列举一些 ./configure 后面的配置选项,也可以输入./configure --help命令进行查看(需要在软件包的根目录下),红色部分需要根据实际路径修改
–enable-gui:开启vim图形界面,也就是gvim
–with-features=huge:支持最大特性
–enable-rubyinterp:打开对ruby编写的插件的支持
–enable-pythoninterp:打开对python编写的插件的支持
–enable-python3interp:打开对python3编写的插件的支持
–enable-luainterp:打开对lua编写的插件的支持
–enable-perlinterp:打开对perl编写的插件的支持
–enable-multibyte:打开多字节支持,可以在Vim中输入中文
–enable-cscope:打开对cscope的支持
–with-python-config-dir=<font color="red">/usr/lib/python2.7/config/ 指定python 路径</font>
–with-python-config-dir=<font color="red">/usr/lib/python3.5/config/ 指定python3路径</font>
–prefix=/usr/local/vim:指定将要安装到的路径(自行创建)
编译安装
make
make instal
- 查看是否成功
cd /usr/local/vim/bin
ls
有这两个内容说明gvim和vim都安装成功了
[图片上传失败...(image-696d70-1559663399724)]
但是安装成功并不代表有python支持,输入一下代码,查看python的前头是否有+号,+号表示支持的功能,-号表示不支持
./vim --version|grep python
[图片上传失败...(image-a15dd5-1559663399724)]
-
成功后添加软连接到/usr/bin,并将旧版的vim改名或删除,这里是将其改名为vim7。下面的指令执行成功后就可以输入vim7,vim,gvim查看效果了
sudo mv /usr/bin/vim /usr/bin/vim7 sudo ln -s /usr/local/vim/bin/vim /usr/bin sudo ln -s /usr/local/vim/bin/gvim /usr/bin
-
vim8升级成功后,下一步就是配置他了,首先我们需要安装vundle,这个VIM的一款插件,他主要负责管理VIM的插件。
- 该命令将下载Vundle插件管理器,并将它放置在你的Vim编辑器bundles文件夹中。现在,你可以通过.vimrc配置文件来管理所有扩展了。
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
- 接下来,把下来的Vundle配置添加到配置文件的顶部:
set nocompatible " required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
" Add all your plugins here (note older versions of Vundle used Bundle instead of Plugin)
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
- 这样,你就完成了使用Vundle前的设置。之后,你就可以在配置文件中添加希望安装的插件,然后打开Vim编辑器,运行下面的命令:
:PluginInstall
- 这个命令告诉Vundle施展它的魔法——自动下载所有的插件,并为你进行安装和更新。ycm下载过程比较慢,需要耐心等待。
-
安装完成后,就是最后的设置以及编译工作了。
在设置之前,又是非常重要的安装软件依赖,cmake安装教程
-
clang安装(官方文档中有要求clang的版本需要高于3.9,但是我们用yum下载下来的比3.9要低一些,不过这个无所谓,在编译的时候,系统会自动下载最新版的clang):
sudo yum install epel-release
sudo yum install clang
-
.准备工作完成后,又到了编译以及连接ycm源代码的工作了
cd ~/.vim/bundle/YouCompleteMe ./install.py --clang-completer
经过漫长的编译,终于到了最后一步,进入.vimrc文件,在最下方添加设置
"设置全局配置文件的路径
let
g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
"设置全局Python路径
let g:ycm_server_python_interpreter='/usr/bin/python'
- 最后用gvim打开一个py文件,体验一下自动补全的效果吧
[图片上传失败...(image-dd67be-1559663399724)]