YouCompleteMe在Windows环境下安装折腾记录
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或更高版本。免费的社区版就行 并确保已包含下列组件:(这里的选择是我几次编译失败试出来的,不确保没有冗余)
环境变量
需要注意的是,上文中提到组件中,无论是CMake还是python还是pip还是VS,确保其相关执行文件在系统的环境变量中 可以在命令行使用
1echo %PATH%
检查一下
环境就绪,进入安装步骤
在cmd下进入ycm的目录。在我电脑上的路径如下:
1cd %USERPROFILE%\.vim\bundle\youcompleteme\
执行官方推荐的方法:
1python install.py --clang-completer
如果安装的VS不是2019版本,则会遇到以下错误:
可以通过参数(–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的启动 并出现如下提示:
OK即可