扩展vim成python ide,主要讲述ycm+vim8的安装

这篇文章好多图片都挂掉了,对这篇文章有兴趣的话,可以去我的CSDN看看

扩展vim成python ide

这几天的经历

首先感谢各位乐意分享的爱折腾的程序员们,这几天翻过的文章太多了,就不一一点名了。没有你们,我就不会踩这么多坑,哈哈开玩笑的~
然后讲讲这几天的经历,没耐心的朋友可以跳过这段,我将从第二段开始讲述安装过程。这几天为了安装这个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慢了一个档次,这一点同样体现在其他一些插件上)

接下来就是具体安装过程

  1. 下载vim8源码,我将他存放在~/src文件夹下,下载完成后得到一个名为vim8的文件
cd ~/src
git clone https://github.com/vim/vim.git
  1. 重点步骤,安装vim以及开启vim8支持python2.7所需的软件依赖
yum install python-devel ncurses-devel
# 如果想开启vim8支持python3,需要下载以下软件依赖
yum install python3-devel ncurses-devel
  1. 可选步骤,如果想安装gvim的话,需要额外的软件依赖
yum install libXt-devel gtk2-devel
  1. 进入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:指定将要安装到的路径(自行创建)

  2. 编译安装

   make
   make instal
  1. 查看是否成功
    cd /usr/local/vim/bin
    ls 

有这两个内容说明gvim和vim都安装成功了

[图片上传失败...(image-696d70-1559663399724)]

但是安装成功并不代表有python支持,输入一下代码,查看python的前头是否有+号,+号表示支持的功能,-号表示不支持

   ./vim --version|grep python

[图片上传失败...(image-a15dd5-1559663399724)]

  1. 成功后添加软连接到/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
    
  2. 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下载过程比较慢,需要耐心等待。
  1. 安装完成后,就是最后的设置以及编译工作了。

    • 在设置之前,又是非常重要的安装软件依赖,cmake安装教程

    • clang安装(官方文档中有要求clang的版本需要高于3.9,但是我们用yum下载下来的比3.9要低一些,不过这个无所谓,在编译的时候,系统会自动下载最新版的clang):

      sudo yum install epel-release
      sudo yum install clang

  2. .准备工作完成后,又到了编译以及连接ycm源代码的工作了

     cd ~/.vim/bundle/YouCompleteMe
     ./install.py --clang-completer
    
  3. 经过漫长的编译,终于到了最后一步,进入.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' 
  1. 最后用gvim打开一个py文件,体验一下自动补全的效果吧
    [图片上传失败...(image-dd67be-1559663399724)]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容