zoukankan      html  css  js  c++  java
  • Vim安装YouCompleteMe插件

    Vim安装YouCompleteMe插件

    1.更新vim版本:

    首先查看当前vim版本是否满足插件所需的最低版本,查看方法是按正常步骤下载vundle,尝试安装YouCompleteMe插件,如果不满足会给出版本过低的提示。或者执行vim –version查看版本号,在YouCompleteMe官网可以看到Make sure you have Vim 7.4.1578 with Python 2 or Python 3 support的警告,即必须是7.4.1578以上版本,且带有python支持(版本可能会变的,2017-11-10的时候是此版本),出现该提示则更新vim至最新版8.0.4,更新方法如下:

           (1)卸载原来的vim : yum remove vim –y(apt-get remove vim)

           (2)下载最新的vim : https://github.com/vim/vim.git

           (3)安装:./configure  --enable-pythoninterp=yes && make && make install

    (--enable-pythoninterp=yes为开启python2支持(python3支持的可自行百度),否则vim总是报错:YouCompleteMe unavailable: requires Vim compiled with Python (2.6+ or 3.3+) support)


    2.升级cmake和gcc:

    因为安装clang3.9需要更高版本的cmake和gcc,因此必须升级。(版本合适可不用升级)

    (1)去官方下载cmake(version > 3.2)  gcc(version > 4.8)安装后配置环境变量。(可以先尝试用旧版本安装,过程中报错再升级相关程序,不报错就正常安装)。

    实际安装时,cmake升级至3.6.0,gcc升级至5.4.0

    (2)安装gcc:参考https://www.cnblogs.com/Norlan/p/5196920.html,安装完成后要把原来的/usr/bin下的低版本的gcc、g++、cpp重命名。

    (3)安装cmake:直接安装即可,下载源码执行:

    ./configure –prefix=yourpath && make && make install


    3.安装llvm+clang:

           (1)YouCompleteMe 官网建议安装 Clang 3.8 以上的版本,实际选择3.9.1版本:具体安装过程可参考:http://www.cnblogs.com/codemood/p/3142848.html 或者官方网站:http://clang.llvm.org/

           如果更新过gcc至高版本,安装中可能会报错:version `GLIBCXX_3.4.21' not found。解决方法参考:http://blog.csdn.net/rznice/article/details/51090966

           注意:如果直接执cmake -G "Unix Makefiles" ../llvm-3.9.1.src 会导致产生大量的编译文件,多达9.4G,为了避免这样的空间浪费,加入两个cmake选项,最后执行的命令为:

    cmake  -G   "Unix Makefiles"   -DLLVM_TARGETS_TO_BUILD="host"

    -DCMAKE_BUILD_TYPE=Release   ../llvm-3.9.1.src

    其中-DLLVM_TARGETS_TO_BUILD=”host”意味着只编译生成本平台的相应文件,-DCMAKE_BUILD_TYPE=Release表示编译生成release版本,默认的是debug版本,会产生大量的不需要的文件。


    4.编译YCM:

    (1)首先下载YouCompleteMe(https://github.com/Valloric/YouCompleteMe)至~/.vim/bundle/目录下,可以使用PluginInstall下载,也可以直接从git上下载:https://github.com/Valloric/YouCompleteMe

    (2)下载成功后,在YouCompleteMe下执行:git submodule update --init –recursive,会下载一些第三方依赖库和相关文件。

    (3)任意新建一个目录ycm_build(此目录用于cmake生成编译的中间文件,编译或安装成功后可以直接将此目录删除)进入目录执行:

    cmake  -G  "Unix Makefiles"  -DUSE_SYSTEM_LIBCLANG=ON  .  

    ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp(编译支持c和c++的命令补全,不需要可以不用编译这个)

    (4)不出错然后继续执行:

    cmake --build . --target ycm_core --config  Release

    执行过程中可能出现:/usr/local/lib/libpython2.7.a: could not read symbols: Bad value错误,但是实际上是有/usr/local/lib/libpython2.7.a这个文件的,错误的原因是编译生成的.a文件格式不符合,重新编译python2.7并加入-fPIC选项即可解决此问题。即在python2.7的源码目录下执行安装三部曲,其中第一步修改为:

    ./configure –enable-shared –fPIC

    编译成功则会在~/.vim/bundle/YouCompleteMe/third_party/ycmd下生成ycm_core.so文件。


    5.配置.ycm_extra_conf.py:

    .ycm_extra_conf.py文件是YCM的入口文件,启动vim的时候都会先查找这个文件。这个文件主要的意义在于,让clang能把当前的源码文件 "编译 " 通过. 因为YCM是基于语义补全的,会对.cpp进行语法分析和语义分析。于是就得告诉clang一些具体的编译参数(比较重要的是-I,得让clang知道去哪些目录下找头文件)。果clang不能正确的编译.cpp,那么很多补全的功能就失效了。

    (1)编译成功后,将~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/. ycm_extra_conf.py  拷贝到~/ .ycm_extra_conf.py 拷贝过去后可以打开vim编写一个文件看看效果,已经有了一部分命令补全功能。还需要修改. ycm_extra_conf.py文件增强效果。

    (2)修改.ycm_extra_conf.py文件,参考:

    http://blog.csdn.net/mr_zing/article/details/44263385

    (3)最后在~/.vimrc文件中加入如下几句:

    let mapleader = ","

    let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'

    let g:ycm_min_num_of_chars_for_completion=1

    let g:ycm_seed_identifiers_with_syntax=1

    let g:ycm_collect_identifiers_from_tag_files = 1

    nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>

    set nocompatible

    filetype off

    set rtp+=~/.vim/bundle/Vundle.vim

    call vundle#rc()

    Bundle 'gmarik/Vundle.vim'

    Bundle 'fatih/vim-go'

    Bundle 'Valloric/YouCompleteMe' (Bundle即为安装的插件)

    filetype plugin indent on

    syntax on


    6.其他实用插件

    1.Nerdtree  

    2.vim-airline

    安装相比YCM简单的多,可自行google


    参考文章:

    http://www.cnblogs.com/lysuns/p/4222707.html

    http://blog.csdn.net/u012675539/article/details/51489957

    https://github.com/Valloric/YouCompleteMe#full-installation-guide

  • 相关阅读:
    BZOJ 2034 【2009国家集训队】 最大收益
    vijos P1780 【NOIP2012】 开车旅行
    BZOJ 2115 【WC2011】 Xor
    BZOJ 3631 【JLOI2014】 松鼠的新家
    BZOJ 4717 改装
    BZOJ 2957 楼房重建
    BZOJ 4034 【HAOI2015】 T2
    BZOJ 1834 【ZJOI2010】 network 网络扩容
    BZOJ 2440 【中山市选2011】 完全平方数
    BZOJ 2733 【HNOI2012】 永无乡
  • 原文地址:https://www.cnblogs.com/deepllz/p/8892642.html
Copyright © 2011-2022 走看看