• Ubuntu下如何安装YouCompleteMe插件


    Ubuntu安装YouCompleteMe插件

    简介:

    众所周知, Vim是一款linux下的文本编辑器, 其最基础的工作就是编辑文本,不管该文本的内容是什么。

    Vim被程序员所使用后,其慢慢的被肩负了与IDE一样的工作,文本自动补全(ie.acp,omnicppcompleter),代码检查(Syntastic)等等工作。

    针对文本自动补全这个功能来说,主要有两种实现方式。

    • 基于文本

    我们常用的omnicppcompleter,acp,vim自带的c-x, c-n的实现方式就是基于文本。更通俗的说法,其实就是一个字:猜. 其通过文本进行一些正则表达式的匹配,再根据生成的tags(利用ctags生成)来实现自动补全的效果。

    • 基于语义

    顾名思义,其是通过分析源文件,经过语法分析以后进行补全。由于对源文件进行分析,基于语义的补全可以做到很精确。但是这显然是vim所不可能支持的。而且经过这么多年发展,由于语法分析有很高的难度,也一直没有合适的工具出现。直到,由apple支持的clang/llvm横空出世。YouCompleteMe也正是在clang/llvm的基础上进行构建的。

    整合实现了多种插件

    • clang_complete
    • AutoComplPop
    • Supertab
    • neocomplcache
    • Syntastic(类似功能,仅仅针对c/c++/obj-c代码)

    支持语言

    • c
    • c++
    • obj-c
    • c#
    • python

    对于其他的语言,会调用vim设置的omnifunc来匹配,因此同样支持php,ruby等语言。


    正文:

    0x00. 简介

    YouCompleteMe号称Vim的自动补全神器,YouCompleteMe: a code-completion engine for Vim,该项目在github的地址:YouCompleteMe

    0x01. Requirements

    Vim is at least 7.3.584 and it has support for python2 scripting.

    0x02. 用Vundle来安装YCM(YouCompleteMe)

    安装其实非常简单,在.vimrc文件中加入语句 Bundle 'Valloric/YouCompleteMe' 即可,保存,退出,然后再次打开Vim,normal模式下输入 :BundleInstall 即开始下载。如下图:

    也可以切换至 .vim/bundle 下手动下载,输入如下命令:

    git clone https://github.com/Valloric/YouCompleteMe.git

    手动下载完后检查仓库的完整性,切换到 YouCompleteMe 目录下,输入如下命令:

    git submodule update --init --recursive

    0x03.  下载最新的libclang

    Clang是一个开源的编译器,它可以编译C/C++/Objective-C/Objective-C++. Clang提供的libclang库是用来给YCM为这些语言提供语义补全的引擎。和YCM配合的libclang版本必须 >=3.6 ,但理论上也是可以和 3.2+ 版本的libclang配合使用的。下载最新的libclang如下:

    sudo apt-get install libclang-dev

    0x04. 编译YCM需要的ycm_support_libs库

    首先要确保你已经安装类cmake。如果没有,请按如下安装:

    sudo apt-get install cmake

    其次需要确保你有一些 Python 头文件。如果没有,请按如下安装:

    sudo apt-get install python-dev

    接下来,创建新的文件夹 ycm_build 进行编译,如下:

    1 cd ~
    2 mkdir ycm_build
    3 cd ycm_build

    不需要语义补全的童鞋们,直接执行下面的语句:

    cmake -G "Unix Makefiles" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp

    然并卵啊,俺们是需要语义补全的呀~,那么请先去 llvm.org 下载最新的 clang+llvm 包,然后把它们解压到 ~/ycm_temp/llvm_root_dir 文件夹下。接着,执行如下语句:

    cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp

    再接着要开始编译 ycm_support_libs 库,执行如下语句:

    make ycm_support_libs

    这样就编译完了。

    0x05. 配置YCM

    本渣开始以为编译完了就完事了,谁知道再次打开Vim,它来了这么一句:No .ycm_extra_conf.py file detected, so no compile flags are available. Thus no semantic support for C/C++/ObjC/ObjC++. 哦呵呵呵~

    进 ~/.vim/bundle/YouCompleteMe 文件夹下一看。。。没有 cpp !没有 cpp !没有 cpp !

    咋办?新建呗。。。然后把 YCM‘S own .ycm_extra_conf.py 文件拷贝到相应的文件夹下。

    接着再次打开 .vimrc 配置YCM,如下:

    "YouCompleteMe
    let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'

    之后再次打开Vim即可。

    为了补全,我们还需要在 .ycm_extra_conf.py 文件中进行配置,如下:

    1 '-isystem',
    2 '/usr/include',
    3 '-isystem',
    4 '/usr/include/c++/4.9.2',
    5 '-isystem',
    6 '/usr/include',
    7 '/usr/include/x86_64-linux-gnu/c++',

    0x06. Summary

    城里人真会玩:)

    自己再配置配置可以起飞了~

    Vim自动补全插件----YouCompleteMe安装与配置  http://www.linuxidc.com/Linux/2014-04/99719.htm

    更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

  • 相关阅读:
    openfire学习4------->android客户端聊天开发之聊天功能开发
    MTD中的nand驱动初步分析---面向u-boot
    在线代码编缉器
    三个角度解构云计算,商业驱动or技术驱动?
    分布式存储的三个基本问题
    云计算核心技术
    云计算历史
    《信息产业指南》云计算解读
    2017云计算市场需要密切关注的10个趋势
    2017云计算机会
  • 原文地址:https://www.cnblogs.com/tsingke/p/5325964.html
Copyright © 2020-2023  润新知