• 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

  • 相关阅读:
    Android之旅 自我图示总结四大组件
    解决.NET 调用JAVA WEBService服务中文乱码问题
    【itercast OSI 七层网络模型 学习笔记】Layer 1 物理层
    用SDL库播放yuy2 Packed mode
    uva539 卡坦岛 简单回溯!
    Zookeeper CLI
    在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行
    Zookeeper leader选举
    Zookeeper 工作流
    ZooKeeper的架构
  • 原文地址:https://www.cnblogs.com/deepllz/p/8892642.html
Copyright © 2020-2023  润新知