[windows] vim 安装 YouCompleteMe

2020.02.15

我不管你使用什么方法安装的YouCompleteMe(准确的说事 git clone)

现在到 YouCompleteMe 目录下,准备编译 ycmd。

构建文件是 install.(py|sh)

无参数只解析 Python 语言

--clang-completer or --clangd-completer 解析 C家族语言

具体看 --help

确认python 版本,在我机器上vim需要使用 python3.7,这个是必须的,因为vim 会调用 python dll,所以版本要匹配。

我的机器上的python3.7 lib文件是:libpython3.7m.dll.a,带有 m
请看文件:YouCompleteMe/third_party/ycmd/build.py +71

DYNAMIC_PYTHON_LIBRARY_REGEX = """
  ^(?:
  # Linux, BSD
  libpython{major}\\.{minor}m?\\.so(\\.\\d+)*|
  # OS X
  libpython{major}\\.{minor}m?\\.dylib|
  # Windows
  python{major}{minor}\\.lib|
  # Cygwin
  libpython{major}\\.{minor}\\.dll\\.a
  )$
"""

Cygwin 的正则是不匹配 libpython3.7m.dll.a,所以需要改正则表达式或者…

还依赖 libcrypt-devel

至此Python 已经可以正常使用了(或许)。

扫描二维码关注公众号,回复: 10946718 查看本文章

在我这 Python3.7 不能识别 pyd 文件,所以需要

YouCompleteMe/third_party/ycmd/ycm_core.pyd ⇒ YouCompleteMe/third_party/ycmd/ycm_core.dll


但是对于 c家族还有问题

使用编译选项 --clang-completer 会下载一个文件: YouCompleteMe/third_party/ycmd/clang_archives/libclang-9.0.0-win64.tar.bz2
他会解压一个文件到目录:
YouCompleteMe/third_party/ycmd/third_party/clang/lib/libclang.lib
删除该 lib 文件

libclang-9.0.0-win64.tar.bz2 文件 bin 目录下的 libclang.dll 解压到 YouCompleteMe/third_party/ycmd/third_party/clang/lib/

至此 c家族 已经可以正常使用了(或许)。

我使用的是 msys2 mingw64 环境,msys 和 mingw64 都各有 Python环境,msys 的 python 最高版本是 3.7,也是vim需要的版本,而 mingw64 最高是 3.8,经过了升级。
但是Python 3.7 残余的文件还在 /mingw64/lib/python3.7,通过 mingw64 环境启动 vim, 会因为路径问题去使用 /mingw64/lib/python3.7 里的文件,删除该目录即可。这样就会使用 /usr/lib/python3.7 目录了
具体是什么路径没有找到问题。


--clang-completer 没使用不知道还有什么问题,还是 lib 与 dll 文件使用错误(压缩包)?


确认 vim 需要的Python版本

在vim使用 :python print("lall") :python3 print("lall")

如果失败 vim会提示没有找到相关 dll,并且提示中会有 Python的版本

在 msys 中 vim 需要 msys-python3.7m.dll

发布了36 篇原创文章 · 获赞 1 · 访问量 8969

猜你喜欢

转载自blog.csdn.net/u011091701/article/details/104341569