虽然没有官方支持Windows环境,但似乎很多人都成功地完成了这项工作。
我绝望地尝试但没有成功。
我现在需要的是为php文件工作自动完成(omni-completion,关键字完成)。
我正在运行已编译的Vim 74的x64bit版本(+ python27,+ python33)here
我从同一个人那里下载了为Windows here编译的YouCompleteMe
我一如既往地使用pathogen插件安装了插件。 我已经安装了Python27& Python33(x64)和我都放在我的PATH中。 (还有windows / System32 /目录下的python27.dll)
在这种状态下。如果我运行Vim,我会收到错误:
" ycmd服务器SHUT DOWN(用...重启)。 Stder(最近30 线)..."
在vim启动时。同时错误日志说:
RuntimeError:导入ycm_core时出错。你确定你已经在文件夹中放置了一个3.2+版本的libclang。[so | dll | dylib] " C:\ Program Files \ Vim \ vimfiles \ bundle \ you-complete-me \ python"?
所以我在特定文件夹(x64bit版本)中提供了libclang.dll,虽然我正在编辑一个php文件(不是c系列文件),所以这并不相关。是吗?
好的,现在我处于启动时仍然出错的情况:
" ycmd服务器SHUT DOWN(用...重启)。 Stder(最近30 线)..."
但错误日志已更改,它说:
DEBUG - 没有全局额外的conf,没有调用方法YcmCorePreload
回溯(最近一次调用最后一次):文件" C:\ Program 文件\的Vim \ vimfiles \包\你完成-ME \ python的\ YCM \服务器../ .. \ YCM \服务器\ handlers.py&#34 ;, 第23行,在 import ycm_core ImportError:python27.dll的模块使用与此版本的Python冲突。在处理上述异常期间,发生了另一个异常:
回溯(最近一次调用最后一次):文件" C:\ Program 文件\的Vim \ vimfiles \包\你完成-ME \ python的\ YCM \服务器/ ycmd.py&#34 ;, 第126行,在 Main()文件" C:\ Program Files \ Vim \ vimfiles \ bundle \ you-complete-me \ python \ ycm \ server / ycmd.py", 第115行,在Main 来自ycm.server导入处理程序文件" C:\ Program Files \ Vim \ vimfiles \ bundle \ you-complete-me \ python \ ycm \ server ../ .. \ ycm \ server \ handlers.py" , 第30行,在 str(e)))RuntimeError:导入ycm_core时出错。你确定你已经在文件夹中放置了一个3.2+版本的libclang。[so | dll | dylib] " C:\ Program Files \ Vim \ vimfiles \ bundle \ you-complete-me \ python"?见 文档中的安装指南。完整错误:模块使用python27.dll 与此版本的Python发生冲突。
它是什么?我很确定我需要的版本(Python 277 x64bit) 我能做什么?有人可以帮助我在Windows环境下工作吗?
@ sooop的答案推动了我一点点前进,它有所帮助 问题是在PATH中我遇到过" c:\ Python27"放置" c:\ Python33"。所以它首先提供了python版本并退出搜索Py27。所以我放置了" c:\ Python27"之前" c:\ Python33"这条消息消失了。
不幸的是发生了另一个错误:现在错误日志显示:
文件" C:\ Program 文件\的Vim \ vimfiles \包\你完成-ME \ python的\ YCM \服务器../ .. \ YCM \服务器\ handlers.py&#34 ;, 第23行,在 import ycm_core ImportError:DLL加载失败:%1不是有效的Win32应用程序。
在处理上述异常期间,发生了另一个异常:
回溯(最近一次调用最后一次):文件" C:\ Program 文件\的Vim \ vimfiles \包\你完成-ME \ python的\ YCM \服务器/ ycmd.py&#34 ;, 第126行,in Main()文件" C:\ Program Files \ Vim \ vimfiles \ bundle \ you-complete-me \ python \ ycm \ server / ycmd.py", 第115行,在Main 来自ycm.server导入处理程序文件" C:\ Program Files \ Vim \ vimfiles \ bundle \ you-complete-me \ python \ ycm \ server ../ .. \ ycm \ server \ handlers.py" , 第30行,在 str(e)))RuntimeError:导入ycm_core时出错。你确定你已经在文件夹中放置了一个3.2+版本的libclang。[so | dll | dylib] " C:\ Program Files \ Vim \ vimfiles \ bundle \ you-complete-me \ python"?见 文档中的安装指南。完整错误:DLL加载失败:%1不是 一个有效的Win32应用程序。
不幸的是,我根本不知道该做些什么。
@ sooop&#39的答案解决了最后两个错误。 YouCompleteMe plugin仅支持Python27(和Py26)。和#34; \ Python27 \ python.exe"的路径%PATH%环境变量必须位于第一个位置,在其他python版本之前!
答案 0 :(得分:2)
替代和IMHO清洁解决方案是明确地将ycm引用到python可执行文件。为此,请将以下内容放在.vimrc中:
let g:ycm_path_to_python_interpreter = 'c:\Python27_64\python.exe'
其中c:\Python27_64\python.exe
应替换为python可执行文件的完整路径。请注意,其架构(即32位或64位)应与您的vim架构相匹配。
答案 1 :(得分:1)
从%PATH%中删除路径python3。