自从转入终端编程,最令我头疼的就是代码补全的问题,vc6.0中有assist X插件,简单安装就可以完美代码补全;vs中自带代码补全功能。到了后台server + 模拟终端编程的模式,完全找不到了方法。代码写的很是痛苦。
痛点:前面定义了一个变量,后面用的时候忽然忘记这个变量的名字了,于是不得不翻回去查这个变量。更有时候这个变量的名字很长,记不住啊,逼得我把名字写在纸上,费了老劲了。
后来使用了ctags,不管怎么样,还是帮了很大忙。但是这种基于文本的匹配很不好,速度慢,准确度低。于是一直向往传说中的YouCompleteMe。于是乎动手配置,结果从下午搞到了凌晨四点半,经历了无数的坑,没有结果。
我没有放弃,继续搞。不断的google,终于找到了几篇感觉靠谱的文章,但是由于公司的权限的限制,我不能用最新版的linux系统,不得不升级gcc、cmake,同时系统预装的python2.6.6我不敢升级,virtualenv又不能用,无奈只好用docker。但是docker又踩了好多的坑,比如docker磁盘空间no left等问题都出现了。
被逼无奈咨询我的leader,他了解到我用的安装系统是centos6.6,他说你可以用最新版的Ubuntu系统试试,不要用centos,更不能用6.6版本,不然要升级的东西太多,太费劲。
所以最后的方法是:在16.04的Ubuntu系统上安装YCM,安装到docker中,然后放到生产环境的机器中编写代码。
为了避开docker给我带来的麻烦,我决定先用VMware + Ubuntu16.04试试,于是下载、安装。安装之后我发现,Ubuntu16.04就是好,cmake、gcc、python等软件包的版本都符合YCM的要求,直接安装YCM就可以了。
Ubuntu16.04的一些软件可能没有安装,但是通过apt-get可以直接安装很高版本的软件包,直接符合YCM的要求
下面直接开干:
1. 安装用到的软件包
通过apt-get直接获得高版本的软件包,不用再次升级(yum的软件包基本都是很低的版本的软件包,坑爹)。
sudo apt-get install vim
sudo apt-get install git
sudo apt-get install subversion
sudo apt-get install python-dev libxml2-dev libxslt-dev
sudo apt-get install gcc
sudo apt-get install cmake
apt-get
安装软件简直不能再爽了,yum
安装然后在升级,真是太费劲,特别是升级gcc真的不简单啊,各种libstdc++
找不到。
大概就是这些安装包,具体缺什么在apt-get安装,反正基本都满足要求,不用升级。
2. 安装Vundle
通过下面的命令clone一个Vundle:
git clone https://github.com/VundleVim/Vundle.vim