上一篇日志已经step by step地实录了如何在本机mac上配置vim开发环境已经各种插件。
有了一定经验之后,把配置vim的环境到了实验室远程server上centos6.4的环境下配置,这台机器是内网服务器连外网比较麻烦。
主要就是多了server无法联网的条件,这个将来在公司配置开发机环境也是基本不能联网的,所以就当提前适应了吧。
这里把遇到的一些关键点记录下来,以便后个人后续查阅。
编译vim74
由于YouCompleteMe插件需要vim7.3高版本支持;而server上的vim是7.2的,比较久了。因此先要重新编译vim74。
这里主要遇到两个问题:
1. 安装依赖ncurses-devel
2. 编译安装pythong2.7.6
(1)注意配置shared选项(http://taoo.iteye.com/blog/1826912)
(2)如果最后提示编译python的时候失败,需要查看需要缺了哪些库导致的(http://www.111cn.net/sys/CentOS/66072.htm 比如,缺少zlib,一些功能模块的编译就会fail)
3. 执行./configue的时候需要检查各项是否都能支持(比如,一编译到perl相关的项目就出问题,索性我就把--enable-perlinterp这个选项去掉了)
4. make一般需要root权限,但是make install就得需要root权限了,因为需要修改/usr/bin这类的东西
不用编译的vim插件
有些插件运行要依赖python的包。比如,刚编译好vim74并把一些插件直接放到bundle下面之后,打开vim,发现老提示import XXX失败(比如,ultisnips这个插件,老提示找不到这找不到那的)。
一个可行的解决办法就是在.bash_profile中加一句话:
export LD_LIBRARY_PATH=/usr/local/lib
随后就不报错了,原因是找到了各种lib库了。
之前实习的时候,一般在开发机上运行python代码,经常把python的环境直接也传到开发机上面,然后再设置下LD_LIBRARY_PATH就OK了。
编译YouCompleteMe(YCM)
由于不能联网,编译YCM的时候真是吃了不少苦头。
1. 由于编译ycm共享库的时候用到了cmake,因此先在服务器上安装cmake
(http://www.cnblogs.com/zhoulf/archive/2013/02/03/2890717.html)
2. 编译到某个步骤,遇到了/usr/bin/ld的问题,找到了这篇帖子解决(https://groups.google.com/forum/#!topic/cloudi-questions/-vDPvKYRsM4)。就是看到了这个帖子,才知道了是python编译的时候没有选择shared这个选项,因此缺少东西。编译好python太重要了。
3. 如果是正经的安装,是需要先编译clang+llvm,再编译安装YCM的。而要想编译clang+llvm,又得要求gcc的版本,太麻烦了,就没有去折腾了。退而求其次,选择了一个linux的预编译的clang+llvm的pre-built包直接用了。(后面遇到的部分妖人问题也是由于这个)。
4. 编译安装YCM除了需要make ycm_support_libs之外,还需要在YCM的目录下执行./install --clang-completer才能利用libclang来执行semantics的C-family的补全。如果不执行./install,打开vim后会一直报YCM server shut down的错误。这个问题也折腾了最久。最后由于不能联网,所以没有添加--clang-completer这个选项,结果补全的内容不带有参数。
5. 进一步了解了YCM是C/S结构的,因此在/tmp/ycmd下面可以查看错误日志输出,编译debug定位问题。
一些小问题
刚弄好,直接打开vim,发现delete按键不好使;当时略慌,以为什么又弄错了。后来镇定下来google了一下,发现这种按键的作用在vim中是可以配置的,以后不用慌了,遇到啥问题就解决啥问题。
最后,除了YCM的semantic有些问题,其余的插件都正常使用。