您的位置:首页 > 其它

Windows 环境下为vim安装YouCompleteMe

2017-03-24 22:07 411 查看

下载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_DIR
PYTHON_LIBRARY
, 注意报错提示给的是
(missing:  PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
,末尾有字母
s
, 然后再次运行,成功.

最后一步,运行
cmake --build . --target ycm_core --config Release
, 第一次出问题,尝试将上一步重新Generate一次,再重新Build,结果成功。



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

几个相关链接:

1. Vim配置教程

2. 对解决缺失PythonLib有帮助
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vim windows