Windows下Vim安装YouCompleteMe出现 no module name ycm 错误解决

注:后面有解决过程,要是我的解决方法不适用于你,你可以看下我的解决过程,应该会对你有帮助

问题描述

Windows 7 系统下,安装了Vim8,安装好了 YouCompleteMe,能够安装 C 语言和 java 的补全功能,但是打开 vim 的时候却出现 “no module name ycm” 的错误。


解决
YouCompleteMe\autoload 下的 youcompleteme.vim 文件的第255行插入 Windows 系统下的指向真正的 YouCompleteMe 目录的路径即可,比如我插入的路径是:

root_folder = "C:\\Users\\Administrator\\.vim\\bundle\\YouCompleteMe"

之后,再次在 vim 里面执行 :py3 print(__import__('sys').path) 就不再是下图:
vim-sys.path-old
而是下图:
vim-sys.path-new
你会发现路径的表示方式变成了 Windows 系统的路径表示方式。


解决过程

  1. 百度了这个错误,发现很多都是什么 future 或者是 ycmd 模块不存在,没有看了。
  2. 到 YouCompleteMe 的 github 的 issue 发现有人提过这个问题并且已经被 close,那说明已经解决了这个问题。解决问题的是下图的评论,里面说到的是 Windows 系统下的目录的表示问题,不过还是看不懂。
    issue
  3. 打开了上面的图片说到的 gitter 链接,发现是类似聊天室的问题提问和解决。要知道,上图issue里解决了问题的时间是1月30号,现在已经是2021年5月29日了,而这些信息又超级多,因为没有登录,所以没有任何搜索功能。登录之后搜索这个问题,找了很多才找到下图的提问的地方:
    gitter-questioner
  4. 从上面的帖子开始往下读,也说到了输出python的sys模块的path列表,也说到了:scriptnames,但我还是看不懂,往下看发现那个需要移除什么东西,我以为是移除俩文件,但发现并不行。但是scriptnames我也找不到能够删除一个元素的指令。
    gitter-solved
  5. 因为之前学过一点 vim 配置文件的编写,我觉得可以到那几个 vim 文件找一下有没有包含 ycm 的 python 代码,输出我的 vim 的 scriptname 列表的 youcompleteme 配置文件列表,如下图:
    my-scriptnames-list
  6. 打开了autoload文件夹下面的那个文件,搜索字符串 ycm ,找了很久,到第247行找到了SetUpPython函数,试验了一下发现就是这个函数里面的 python 代码使用的 ycm 模块,分析了一下,发现就是这里添加的 path 的元素的,所以这里是问题的关键,欲改之(这里是我修改之后的文件截图)。

vim-YCM-SetUpPython
7. 本来我试着修改了第258行的denpendencies的一个元素,但发现没什么用。联想到前面说的 Windows 系统下路径的表示问题,我直接在255行插入我的 ycm 的第三方代码的路径,插入之后就没问题了。
vim-ycm-root_folder

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值