VIM高级配置III#YouCompleteMe
来源:互联网 发布:澳洲国立大学博士知乎 编辑:程序博客网 时间:2024/05/17 01:08
VIM高级配置 #YouCompleteMe
#Advanced VIM configuration
2017-11-4 by chubohao in Zhengzhou University
Email:1040459612@qq.com
序言:
#Perface
上一节我们介绍了Vundle这款VIM插件管理的安装和使用,可能还会有一部分人模糊插件的安装,特别是输入Vundle指令的时候(例如 :PluginList/:PluginInstall/:PluginUpdate)。不过不要紧,接下来几节的插件大部分都会采用同过Vundle来安装,所以我会用例子来给大家解说Vundle具体用法。但是很不幸的是,YouCompleteMe一块硬骨头,它涉及到好多方面,安装配置起来比较复杂。不过大家一定要沉住气,如果你在我这里安装不成功,那就去找更多的资源,多尝试几次,我会尽我最大的努力去为大家介绍这这个超逼格的插件安装。
本系列教程适合新手参考,大佬们尽管指出不足。为了你的进一步学习,请参考不同来源的教程。多多尝试,一定能安装好。
目录:
#catalog
- VIM的安装
- Vundle的安装
- YouCompleteMe的安装
- YouCompleteMe的介绍
- YouCompleteMe的安装
- 未来先知
- NERDTree的安装
YouCompleteMe的介绍:
#Introduce of YouCompleteMe
进入外网
望文生义,我们可以知道这款插件的作用——自动补全,对于许多程序员来说,这种功能是必不可少的,但很长一段时间以来,这方面一直缺少一款高等级的自动补全插件,但是YouCompleteMe的出现彻底的改变了这一现状,它对代码的补全完全终于也达到了编译器级别,为什么一个编辑器的插件可以做到如此的神奇,原因就在于它基于 LLVM/clang ,一个Apple公司为了代替GNU/GCC而支持的编译器,正因为YouCompleteMe有了编译器的支持,而不再像以往的插件一样基于文本来进行匹配,所以准确率才如此之高。其次,由于它是C/S架构,会在本机创建一个服务器端,利用clang来解析代码,然后将结果返回给客户端,所以也就解决了VIM是单线程而造成的各种补全插件速度奇慢的诟病,在使用时,几乎感觉不到任何的延时
YouCompleteMe也是所有的插件当中安装最为复杂的一个,这是因为需要用clang来编译相应的库。因为clang在Linux和Mac平台上支持的非常好,所以在这两个平台上安装相对简单。但是clang并没有官方支持Windows,所以YouCompleteMe插件也没有官方支持Windows。可这么好的东西,活跃在Windows上聪明的Vimer们怎么可能容忍这种事情呢,有人就提供了 Windows Installation Guide ,已经编译好了各种版本的YouCompleteMe插件,可以参考这个Guide来安装。
YouCompleteMe除了补全以外,还有一个非常重要的作用: 代码跳转 ,同样可以达到编译器级别的准确度,媲美Visual Assist与Source Insight。有了YouCompleteMe之后,是时候抛弃昂贵的Visual Assist与Source Insight了。赶快安装尝试吧。
YouCompleteMe是一种快速、自动的搜索代码完成引擎,用于Vim。它有几个完成引擎:
- 一个基于标识的引擎,它适用于所有的编程语言,
- 一个基于clangc的引擎,它为c/c++/objective-c/c++(从现在被称为“c-family语言”)提供了本地语义代码的完成,
用于Python 2和3的基于jedit的完成引擎(使用JediHTTP包装器), - 一个基于全分的自动完成引擎,
Gocode和Godef语义引擎的结合, - 一个基于tsserver的打印文件的完成引擎,
- 一个基于tern主机的JavaScript完成引擎,
- 一个以赛车为基础的锈迹引擎,
- 它是一种基于功能的复杂系统,它使用来自Vim的omnicom完整系统的数据,为许多其他语言(Ruby、PHP等)提供语义完成。
YouCompleteMe的安装:
#YouCompleteMe Installation
接下来我们要进行这款安装伟大的插件了,在安装之前,我们必须确保完成一些事情。
在命令号输入
vim --version
查看你的VIM版本是否在7.4.1578或者以上?
如果不是,请看《VIM高级配置I》那里有最新版本VIM的安装。
当你确保你的VIM版本在7.4.1578以上后,接下来检查你的VIM是否支持python2或者python3
打开vim在命令行内输入
:echo has('python') || has('python3')
如果返回1,说明支持,如果返回0则需要重新安装VIM(通过编译方式)接下来我会介绍如何通过编译安装VIM
编译安装VIM(使其支持Python2或Python3):
在命令行内输入
sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \ libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \ libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \ python3-dev ruby-dev lua5.1 lua5.1-dev libperl-dev git
如果你清楚你需要用到哪些语言,你可以进行选择安装,这也可以节约时间。如果不清楚,就直接安装就可以。其中上面的许多东西你可能安装多,但不影响整个进程。
卸载已有的VIM,输入:
sudo apt-get remove vim vim-runtime gvim
如果你的系统比较老,你还需要输入:
sudo apt-get remove vim-tiny vim-common vim-gui-common vim-nox
完整卸载后,我们开始进行安装
输入:
cd ~git clone https://github.com/vim/vim.git
在进行下一步之前,先这样做:
输入:
cd /usr/lib ls
查看有哪些python版本,找到一个python2.x(2.几)的文件夹
然后分别进入这些文件夹
输入:
ls
记下以“python-”开的文件全名,一会将会用到
回家目录输入
cd vim./configure --with-features=huge \ --enable-multibyte \ --enable-rubyinterp=yes \ --enable-pythoninterp=yes \ --with-python-config-dir=/usr/lib/python2.7/config \ --enable-perlinterp=yes \ --enable-luainterp=yes \ --enable-gui=gtk2 \ --enable-cscope \ --prefix=/usr/localmake VIMRUNTIMEDIR=/usr/local/share/vim/vim80
然后输入
cd ~/vimsudo make install
设置VIM位默认编辑器,并并使用可更新的选项
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 1sudo update-alternatives --set editor /usr/bin/vimsudo update-alternatives --install /usr/bin/vi vi /usr/bin/vim 1sudo update-alternatives --set vi /usr/bin/vim
然后检查vim版本,以及对Python的支持情况
如果版本还是太低,或者执行:
:echo has('python') || has('python3')
输出为0, 则可能是因为vim没有卸载干净,或者你可以执行:
vim --version|grep python
如果现实的结果:+python和+python3代表VIM同时支持了python和python3,这是不正确的,我们只能让vim支持其中一个,不然YouCompleteMe会报错。这时候需要你重新安装上述步骤进行,或者参考其他答案。
如果这两个要求你都完成了的话,我们接着进行。
输入指令:
vim ~/.vimrc
在其中加入:
Plugin 'Valloric/YouCompleteMe'
保存并退出,打开vim,输入:
:PluginInstall
需要等待一段时间,等待出现Done!后退出。如果没有出现Done或者报错了,你可以用这种方式( Git ):
cd ~/.vim/bundlegit clone --recursive [https://github.com/Valloric/YouCompleteMe.git](https://github.com/Valloric/YouCompleteMe.git)
下载完成后,Vundle中会出现一个YouCompleteMe文件件,输入:
cd YouCompleteMEgit submodule update --init --recursive
下载安装最新版的 libclang
sudo apt-get install llvm-3.9 clang-3.9 libclang-3.9-dev libboost-all-dev
编译构建 ycm_core 库
sude apt-get install cmake
创建一个目录放编译过程中产生的文件
mkdir ~/.ycm_buildcd ~/.ycm_build
生成 makefile
cmake -G "Unix Makefiles" -DUSE_SYSTEM_BOOST=ON -DEXTERNAL_LIBCLANG_PATH=/usr/lib/x86_64-linux-gnu/libclang-3.9.so . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
构建 ycm_core
cmake --build . --target ycm_core
配置
cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim/
添加vim配置,将下列语句复制到.vimrc中去
“ ~/.vimrclet g:ycm_server_python_interpreter='/usr/bin/python'let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
OK,开始创建一个C文件进行一次检测吧
未来先知:
现在我们已经完成了难度的最高的插件的安装,我也已经花了好几个小时没有活动了,如果你还没有安装成功我深表遗憾,但千万不要放弃,只要记住那几个硬性的要求,多看看英文档案以及其他大佬的文档,我相信你一定会成功的。
那么,下一节我们会做些什么呢?在我们的IDE中,我们的编译器左侧都会有一些目录可供选择,那么VIM呢?下一节这款插件相信肯定会吸引你的,他就是NERDTree。
好了让我们进入下一遍吧 #Let us go on
- VIM高级配置III#YouCompleteMe
- Vim + Vundle + YouCompleteMe 配置
- vim自动配置(YouCompleteMe)
- Vim配置YouCompleteMe
- ubuntu配置vim+youcompleteme记录
- ubuntu配置vim+youcompleteme记录
- Ubuntu中vim配置YouCompleteMe
- vim配置补全插件YouCompleteMe
- 强大的vim配置 (YouCompleteMe)
- VIM插件YouCompleteMe安装与配置
- vim YouCompleteMe
- Vim自动补全插件----YouCompleteMe安装与配置
- 新版vim配置——YouCompleteMe 新型补全助你飞!
- Vim自动补全插件----YouCompleteMe安装与配置
- CentOS7 Vim自动补全插件----YouCompleteMe安装与配置
- vim自动补全插件YouCompleteMe的安装及配置
- Vim 自动补全插件 YouCompleteMe 安装与配置
- Vim自动补全插件----YouCompleteMe安装与配置
- 13.k-means聚类,混合高斯,EM算法
- 设计模式学习笔记
- 文章标题
- 输出1-64二进制中1位奇数个的二进制代码
- PyQt5学习教程16:文件打开对话框的使用
- VIM高级配置III#YouCompleteMe
- spring-boot 集成mybatis的分页插件PageHelper和Generator (番外)
- python中cssselect参数的说明
- Win7下基于Anaconda安装dlib与face_recognition
- 将本地git仓库上传到github仓库时出现error: src refspec master does not match any报错无法上传
- 多元复合函数的求导法则
- 欢迎使用CSDN-markdown编辑器
- Python IDE for Windows pycharm的安装与配置
- 出现错误 No resource found that matches the given name '@style/Theme.AppCompat.Light'