Windows 环境下为vim安装YouCompleteMe

下载YouCompleteMe

使用vundle的方式安装。按照 Vundle 在Windows上的安装指南,安装好git, 官方提供了一个Curl.cmd来保证Curl可以在Windows终端运行。然后git clone将Vundle拉取到本地。

按照官方的 Quick Start ,同时参考简书 Sam_Lau的 Vim配置、插件和使用技巧 加入了_vimrc.bundles文件。在gVim运行:PluginInstall 成功下载好了插件。当然直接参考官方把配置放到_vimrc也可以。

编译和问题排查

之后经历了几个问题,排查花了一些时间。

第一个问题:vim不能支持Python(实际上是不能发现python36.dll).
下载好各个插件之后,启动gVim,提示YouCompleteMe unavailable: requires Vim compiled with Python (2.6+ or 3.3+) support
然而在gVim中执行 :version 得到的是 +python/dyn+python3dyn,并且本地已经安装了python36-x32, gVim也是32位的,不符合初步搜索中的“确认python和gVim都是32或都是64位保持一致”的解决方案.
搜索了 StackOverflow, 进一步的验证发现 echo has('python')echo has('python3') 都是0。这说明没有正确加载Python程序的dll。
测试python3 print('hello') 果然发现报错信息中提示,不能正确加载python35.dll. 因为我本地安装的是python36-x32,所以自然找不到。尝试修改这一加载设置,无果。于是重新装了python35-x32,echo has('python3') 成功返回1. 第一个问题解决。

总结:
gVim程序提示不支持Python的一个原因可能是没有发现Python的dll。确保安装的Python和gVim都是64位或都是32位的,同时使用python3 print('hello') 看加载错误的提示信息来确定问题。

第二个问题:
之后,可以正常启动gVim,要编辑文件时提示YCM core library not detected
The ycmd server SHUTDOWN. ...YCM core library not detected; you need to compile YCM before using it, 因为还没有开始编译YCM。
于是继续按照 YouCompleteMe项目Github主页的简易版安装指南 进行编译安装。
出现问题。再切换到完整安装指南
1. 检查vim版本和Python支持,OK。
2. 安装YCM, OK.
3. 对semantic completion 语义补全有需要的进行这一步,我直接先跳过。
4. 编译ycm_core。 需要Visual Studio 2013(或以上版本)。 CMake的支持。(MSVC 12 (Visual Studio 2013), 14 (2015), and 15 (2017) are officially supported.)
建立一个ycm_build文件夹,命令行运行
cmake -G "Visual Studio 12" . ($*Path_To_YCM*)/YouCompleteMe/third_party/ycmd/cpp ,这里的$Path_To_YCM是YCM文件夹路径, 按照自己的安装位置修改。本地安装了VS 2013,所以选择"Visual Studio 12"
运行结果提示
(missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS).
继续找问题,发现需要修改YCM文件夹下的CMakeLists.txt 。

option( USE_PYTHON2 "If on, link to Python 2 instead of 3" OFF )
set(PYTHON_INCLUDE_DIR "D:/Program Files (x86)/Python35-32/include") 
set(PYTHON_LIBRARY "D:/Program Files (x86)/Python35-32/libs/python35.lib") 

由于我没有安装Python2,所以将原来USE_PYTHON2 的flag设置成了OFF,手动加入了PYTHON_INCLUDE_DIRPYTHON_LIBRARY, 注意报错提示给的是(missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS),末尾有字母s, 然后再次运行,成功.
最后一步,运行cmake --build . --target ycm_core --config Release, 第一次出问题,尝试将上一步重新Generate一次,再重新Build,结果成功。

终于搞好了

至于语义补全,等有时间再研究一下。

几个相关链接:
1. Vim配置教程
2. 对解决缺失PythonLib有帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值