为gvim (WIN7)添加YouCompleteMe插件

1. 准备工作,安装MinGW-64开发环境,参照这里的说明

  • mingw-get-setup.exe并运行,安装时请注意

  • 将安装路径设置为 C:\MinGW\32 (非默认安装路径)

  • 不安装GUI

  • 编辑配置文件 C:\mingw\32\var\lib\mingw-get\data\profile.xml

<sysroot subsystem="MSYS" path="%R/msys" />
改成
<sysroot subsystem="MSYS" path="%R/../msys" />

  • 打开命名行窗口,运行命令

 c:\mingw\32\bin\mingw-get install msys-core msys-base msys-vim msys-wget msys-patch msys-flex msys-bison

  • 下载mingw64-w64环境,解压到c:\mingw,并将目录mingw64重命名为64
  • 至此,mingw的目录结构如下所示

c:\mingw\

  32\ (32位工具,编译器)

  64\ (64位工具,编译器)

  msys\ (MSYS环境)

  • 安装llvm for mingw64
  • 要在32/64位开发环境之间切换,只需要编辑配置文件 c:\mingw\msys\etc\fstab,添加以下内容

#c:/mingw/32 /mingw

c:/mingw/64 /mingw

然后重新启动msys即可。

 2. 下载编译YouComplete,参照这里的说明,重点参照Instructions for 64-bit using MinGW64 (clang)这一章。但是完全按照上面的步骤进行还是会有问题的,需要做以下的修改:

  • 在YouCompleteMe/third_party/ycmd/cpp/ycm/CMakeLists.txt中将libclang.dll改成clang.dll。
  • 将YouCompleteMe/third_party/ycmd/cpp/ycm/ycm_client_support.cpp和YouCompleteMe/third_party/ycmd/cpp/ycm/ycm_core.cpp的最后3行注释掉。
  • 不需要将ycmd.pyd和ycm_client_support.pyd从YouCompleteMe/third_party/ycmd 拷贝到YouCompleteMe/python
  • 将libwinpthread-1.dll,libstdc++-6.dll和libgcc_s_seh-1.dll从c:/MinGW/64拷贝到YouCompleteMe/third_party/ycmd;然后使用下面的脚本来测试YouCompleteMe能否正常运行

@rem 请根据本机实际情况设置YCM_INSTALL_DIR和PY_INSTALL_DIR

set YCM_INSTALL_DIR=D:/DevTools/vim-7.4.417/vimfiles/bundle/YouCompleteMe
set PY_INSTALL_DIR=D:/DevTools/Python27
set PYTHONPATH=%YCM_INSTALL_DIR%/third_party/ycmd
set PATH=%PATH%;%PY_INSTALL_DIR%
python -c "import ycm_core"

如果出现ImportError: Dll load failed: 找不到指定模块这样的错误,请使用depends22_x64打开ycmd_core.pyd和ycmd_client_support.pyd检测缺少哪个dll并将其拷贝到c:/MinGW/64拷贝到YouCompleteMe/third_party/ycmd。重复运行测试脚本直至没有错误为止。

  • 我没有用vundle来安装YCM,而是手工修改vimrc将YCM目录加入runtimepath来自动加载YCM。

 

为了简化操作,我写了一个脚本来实现在mingw64环境下自动下载,编译,安装YCM也可以直接下载集成了YCM的gvim,不过在使用之前请配置好_vimrc文件

let $PATH.=;<PYTHON27的路径>

set runtimepath+=;<YCM的路径>

 

为gvim (WIN7)添加YouCompleteMe插件

上一篇:windows下gopath设置


下一篇:AngularJS bootStraping