Foxlair

YouCompleteMe在Windows环境下安装折腾记录

· q8f13

YCM以安装设置繁琐出名 但最近的版本对于这方面已经有了相当的提升 只要确保环境配置满足需求,安装步骤相对以往会顺利很多 这里记录下在Win8.1系统环境下安装的流程和遇到的问题

通过Vundle安装应该是最方便的了

在vimrc中加上

1Plugin 'valloric/youcompleteme'

保存后,执行

1:source ~/_vimrc
2:VundleInstall

来安装YCM在Vim部分的插件

接着开始配置环境

首先是Vim

Vim 7.4.1578 with Python 2 or Python 3 support 确保使用不低于7.4的带有python支持的vim版本 确保vim为utf8编码,确保在vimrc中有相关设置:

1set encoding=utf-8

下一个,Python。Python2 或 Python3均可

x86还是x86-64看清楚 注意所用版本要与系统一致

安装CMake

安装Visual Studio Community

以前用了很久的2013。后来发现开发很多东西都要求高于此版本的VS了 干脆装个2017

安装VisualStudio 2015或更高版本。免费的社区版就行 并确保已包含下列组件:(这里的选择是我几次编译失败试出来的,不确保没有冗余) Image.png

环境变量

需要注意的是,上文中提到组件中,无论是CMake还是python还是pip还是VS,确保其相关执行文件在系统的环境变量中 可以在命令行使用

1echo %PATH%

检查一下

环境就绪,进入安装步骤

在cmd下进入ycm的目录。在我电脑上的路径如下:

1cd %USERPROFILE%\.vim\bundle\youcompleteme\

执行官方推荐的方法:

1python install.py --clang-completer

如果安装的VS不是2019版本,则会遇到以下错误: Image2.png

可以通过参数(–msvc)更改所用VS版本 修改安装方法如下,2017为15,2015为14,依此类推

1python install.py --clang-completer --msvc 15

等待打包编译和部分组件下载

这个步骤涉及下载,耗时可能会较久 中间也可能出现异常,并报出hash不一致的错误。这是由于网络状态不好或中断导致的 重来一遍即可

ycmd安装完成

完成后,重新打开Vim 有可能Vim里会直接提示YCMD server shutdown。YCM服务直接崩了 尝试查看错误log,发现对应的崩溃log是空的

经查发现 log空是因为ycmd在进入可记录log的状态之前就停掉了

通过手动启动ycmd的方法可以排查:

1cd ~/.vim/bundle/YouCompleteMe/third_party/ycmd
2cp ycmd/default_settings.json .
3python ycmd --options_file default_settings.json

一般来说这一步会报python的错误,提示缺某个库。例如:

1AttributeError: 'module' object has no attribute 'frozendict'

配置好pip,用pip安装对应的库。同时安装了python2和3的话要留意下对应的是哪个库 装好后再次尝试手动启动,很可能还会出现类似的错误,仍然是缺库 重复上述步骤直到执行后服务顺利启动(命令行状态下没有任何报错或者提示) 手动中止服务

根据YCM官网README的用法 将ycm目录**\third_party\ycmd目录下的.ycm_extra_conf.py**复制到对应的工程根目录

就绪

在vim中使用YcmRestartServer重启服务 若一切正常,vim会定位到刚才复制的**.ycm_extra_conf.py**,根据配置文件调整ycmd的启动 并出现如下提示: Image3.png

OK即可

#vim   #youcompleteme   #plugin   #developer