简介:YouCompleteMe号称Vim的自动补全神器,该项目在github的地址:YouCompleteMe;以下在10.0.1 build-1379776平台配置完成

插件安装操作:

1、确保Vim版本至少是7.4.273,并且支持python2脚本;vim版本升级:sudo add-apt-repository ppa:fcwu-tw/ppa; sudo apt-get update; sudo apt-get install vim

操作系统字符编码必须设置为UTF-8

查询语系命令:locale

在Ubuntu14.04中修改语系的方法:

打开文件/etc/default/locale,修改变量LANG:

中文:LANG="zh_CN.UTF-8"

英文:LANG="en_US.UTF-8"

在CentOS7.0中修改语系的命令行方法:

修改为中文:localectl set-locale LANG=zh_CN.utf8

修改为英文:localectl set-locale LANG=en_US.UTF-8

或者打开文件/etc/locale.conf修改LANG=zh_CN.utf8

修改后重启即可

2、下载最新版的libclang。Clang是一个开源编译器,能够编译C/C++/Objective-C/Objective-C++。Clang提供的libclang库是用于驱动YCM对这些语言的语义补全支持。YCM需要版本至少为3.6的libclang,但是理论上3.2+版本也行。也可以使用系统libclang,如果确定是3.3版本或者更高。sudo apt-get install libclang-dev;首先要确保你已经安装类cmake。如果没有,请按如下安装:sudo apt-get install cmake;其次需要确保你有一些 Python 头文件。如果没有,请按如下安装:sudo apt-get install python-dev

3、编译YCM需要的ycm_support_libs库。YCM的C++引擎通过这些库来获取更快的补全速度。需要cmake,如果未安装,安装之:sudo apt-get install build-essential cmake(也可以下载安装http://www.cmake.org/cmake/resources/software.html)。确保python头文件已安装:sudo apt-get install python-dev

4、假设你已经通过Vundle装好YCM了,那么它应该位于~/.vim/bundle/YouCompleteMe;如果~/.vim/没有bundle文件夹,执行命令:git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

5、手动安装YouCompleteMe。切换至 ~/.vim/bundle 手动下载YouCompleteMe,输入如下命令:git clone https://github.com/Valloric/YouCompleteMe.git; 手动下载完后检查仓库的完整性,切换到 YouCompleteMe 目录下,输入如下命令:git submodule update --init --recursive

6、编译YCM,如果需要对C-family的语义支持:cd ~/.vim/bundle/YouCompleteMe; ./install.sh --clang-completer;如果不需要对C-family的语义支持:cd ~/.vim/bundle/YouCompleteMe; ./install.sh ;如果需要支持C#,添加 --omnisharp-complete。如果需要支持Go添加--gocode-completer

编译clang+llvm时内存要大于1.5G,否则会报错: g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report

主要原因大体上是因为内存不足,临时使用交换分区来解决:

sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile

编译完成后释放交换空间:

sudo swapoff /swapfile
sudo rm /swapfile

7、接着再次打开 .vimrc 配置YCM,添加内容如下:

filetype off                  " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Plugin 'Valloric/YouCompleteMe'
filetype plugin indent on " required!
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'

  注:

8、为了补全,我们还需要在 .ycm_extra_conf.py 文件中进行配置,vim ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py;添加信息如下:

'-isystem',
'/usr/include',
'-isystem',
'/usr/include/c++/4.8.4',
'-isystem',
'/usr/include/c++/4.9.2',
'-isystem',
'/usr/include',
'/usr/include/x86_64-linux-gnu/c++',

  实际上以上是vim自动补全时搜索路径,如果自动补全的内容位于/usr/local/include里面,则添加以下信息:

'-isystem',
'/usr/local/include',

  根据实际的/usr/include/c++/中的文件夹名称(即C++版本号)修改:

'-isystem',
'/usr/include/c++/4.8.4',
'-isystem',
'/usr/include/c++/4.9.2',

添加结果如下:

最新文章

  1. 居然是Firefox没有抛弃我们
  2. Hibernate JPA实体继承的映射(一) 概述
  3. Python之路第一课Day3--随堂笔记(文件操作)
  4. struts2乱码
  5. HT for Web列表和3D拓扑组件的拖拽应用
  6. WPF学习之路(十四)样式和模板
  7. 统计fastq文件中读段的数量
  8. combobox select .change onSelect事件触发
  9. cocopods的安装和使用
  10. PostgreSQL删除表
  11. 【BZOJ】【2190】【SDOI2008】仪仗队
  12. 【hadoop2.6.0】用C++ 编写mapreduce
  13. fiddler 抓包post请求body参数在jmeter中的书写
  14. RealThinClient学习(一)
  15. [Python Web]配置 nginx 遇到错误排查(初级)
  16. ThinkPHP设计模式与Trait技术
  17. windows安装MongoDB副本集,通过Java程序实现数据的插入与查询
  18. zabbix 利用python脚本实现短信告警
  19. zl
  20. java Properties的用法

热门文章

  1. java启动监听错误: org.springframework.web.context.ContextLoaderListener
  2. PL/SQL 三个小例子
  3. dotweb框架之旅 [一] - HelloWorld
  4. zookeeper curator处理会话过期session expired
  5. CSS之 border 属性
  6. sys.argv向脚本中传递参数
  7. [译]ASP.NET Core 2.0 带初始参数的中间件
  8. 【ASP.NET MVC 学习笔记】- 01 理解MVC模式
  9. javascript 之作用域-06
  10. 五分钟上手Markdown