YouCompleteMe这个插件应该是vim史上最折腾的插件了,我看博客里在类unix系统要用这个插件都相当的麻烦,更别说在windows上了,一天折腾一会,反正哥不急,编译也是一门学问是吧,更有价值的是,遇到问题解决问题的思路和这个过程中得到的历练.引用曾经看过QQ表情上发哥的说的一句话:"泡妞的最高境界是过程,而不是结果",扯远了.
我曾经自己也写过vim自动补全插件,
* 用ctags对VS的include源文件做tags,在vim中加载tags后对sdk中的各种系统函数都能补全.
*但用上以后才发现说上下文环境补全,比如C++自定义类,函数,变量补全还是干不过ide.
*因为这样补全是需要从编译器得到接口,实时编译分析返回数据的.
*还有vim中不能对"ctrl+;","ctrl+,","ctrl+'"这些快捷键做map,还有imap下"ctrl+i"会和tab绑定,"ctrl+m"会和回车绑定,感觉实在是很不爽.
*还有即使这些请况都能解决,在vim中每一个源文件需要的补全环境是不一样的,每一个文件都要建一个补全文件列表,切换到缓冲区时候,自动切换tags,这种事情全做完时间成本太高了,而且这种事情不是成了项目管理了吗,这快折腾成打造IDE了.
*现在对以前折腾的哪些时间,非常后悔,我现在时刻记住一句话"不能转化为经济效益的学习,就是对生命的入侵和蚕食",一个编辑器效果在好也只能起个锦上添花的作用.
各种ide,编辑器,调试器这些都只是工具,为什么只想着用一个工具做所有工具的事,我觉得应该在这些工具最擅长的环境中做用它们,只做少量的配置,使用开发者已经完善的功能,
"不能转化为经济效益的学习,就是对生命的入侵和蚕食","物尽其用,不折腾"这两句话,以后每天早上在心里默念十遍.
回正题,:
下载的工具:
llvm for windows 32和64
cmake
python2,python3
mingw32,mingw64
mysys2
vs2013
然后一个一个描述哪些坑:
1.不要从https://github.com/Valloric/YouCompleteMe中clone or down>down zip解压编译,这样绝对不可能编译成功,
必须
git clone --recursive https://github.com/Valloric/YouCompleteMe.git
git submodule update --init --recursive
对比这两种方式下载的源码,前一种方式的源文件少了一火车的文件,怎么可能编译成功.
几年前我编译vim时候在这里被坑了一下,因为没写在博客里,今年我编译vim时候又被坑了一遍...
2.vs2013要打上update5补丁,要不然在编译ycm过程中会出现一个bug导致ycm的前置关联编译中断,而使ycm编译失败.
3.mingw和mysys2必须装,是的,我是说即使用vs编译也必须装,要不然在链接的时候会有82个链接错误,__clang_xxx之类的.
4.mysys2曾经也想用cygwin了,但cygwin的包管理太反人类了,一个一个的点嘛,我不用你了行不行.
5.安装mingw和mysys2从官网下载exe以后,换源最好首先用浏览器打开添加的源url,看是不是还能正确打开,
因为这些源网站有时候改目录....,笔者现在测试的这些源url是可以用的,如果以后用时间过的久就应该先测试一下再用的.
/etc/pacman.d/mirrorlist.msys:
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch
/etc/pacman.d/mirrorlist.mingw32:
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686
/etc/pacman.d/mirrorlist.mingw64:
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64
6.用cmake建编译项目时候用cmake-gui,别用命令行,cmake-gui更强大,能更直观的反应系统环境缺少的include和库文件.
7.这个插件的开发者是用vs2017编译的即使你用VS2013编译出来了,如果你系统上只装了VS2013也用不了,因为缺少库文件.
即使编译完了,在使用时候也会出现,
这就是因为缺少库文件造成的,用depends.exe查看ycm_core.pyd
如你从网上一个一个下载放到系统目录里,你最终会发现越少的库越来越多,结论就是需要安装,VS2015设置VS2017或者安装配套的库文件,我下载了VS2015,发现安装包3G多而完整安装需要40多个G.......................,而VS2017离线安装包就13G之多,
尝试安装库文件,
我查阅个一些相关的博客
http://blog.csdn.net/huqiao1206/article/details/50768481
https://www.cnblogs.com/zhongtang/p/7448823.html
感谢以上两位博客主,
不但要打上两个补丁,还要把win7更新到sp1,然后离线安半的哪个
Visual C++ Redistributable for Visual Studio 2015
还不知要安装多少文件呢,
===========================================================================
插件作者说直接用VS2017可以顺利完成编译并使用,可看看咱C盘剩余这不到10G空间,心里有点瑟瑟发抖的赶脚啊.
照这节奏,以后C盘直接分500G吧,哈哈,别和我说别装C盘呀,我软件都装D,E盘,可哪样C盘也会装东西的,不信?难道您没装过VS吗?
买硬盘?至少现在不想买,我在找有完整库文件的系统,从系统上copy一份库过来.
由于开始的几个过程没有截图,所以哪过程中的错误场景,现在不好还原了,后悔,未完待续.
http://mirrors.sohu.com/python/3.6.4/