如何在Windows上启用gVim中的Python支持?
我想在Windows上让gVim支持Python。有没有什么办法可以做到这一点?
我使用的是:
- Windows XP SP3
- gVim版本 7.3
- Python 2.7.13(通过Windows安装程序安装的ActivePython)
12 个回答
我在64位的Windows 7上遇到了这个问题。我发现我在用64位的Python 2.7.3和32位的vim 7.3-46。于是我把这两个软件都重新安装成32位的版本,然后重启了电脑。现在一切正常了。
我之前也遇到过同样的问题,不过是在Windows 7上,重启并没有解决这个问题。
我已经安装了gVim 7.3。当时最新的Python版本是3.3,所以我也安装了这个版本。但是用命令:has("python")和:has("python3")检查时,结果仍然是0。
经过多次尝试,我发现了以下几点:
- 如果你的gVim是32位的,通常即使在64位的Windows上也是32位(你可以用命令:version来确认),那么你也需要安装32位的Python。
- 在Windows 7上不需要重启。
- Python的版本需要和gVim编译时使用的版本匹配,因为它会查找特定的DLL文件名。你可以通过gVim中的:version命令来查看,输出内容大概是这样的:
编译信息: cl -c /W3 /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32
-DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_XPM_W32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 /Fo.\ObjGOLYHTR/ / Ox /GL -DNDEBUG /Zl /MT -DFEAT_OLE -DFEAT_MBYTE_IME -DDYNAMIC_IME -DFEAT_GUI_W32 -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl83.dll\" -DDYNAMIC_TCL_VER=\"8.3\" -DFEAT_PYTHON -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python27.dll\" -D FEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python31.dll\" -DFEAT_PERL -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl512.dll\" -DFEAT_RUBY -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=19 1 -DDYNAMIC_RUBY_DLL=\"msvcrt-ruby191.dll\" -DFEAT_BIG /Fd.\ObjGOLYHTR/ /Zi
所以上面的信息告诉我,我其实不需要Python 3.3,而是需要3.1(或者2.7)。在安装了Python 3.1后,:has("python")仍然返回0,但:has("python3")现在返回1。这意味着基于Python的脚本现在应该可以正常工作了!
我想未来版本的gVim可能会与其他版本的Python兼容,但用这种方法应该能帮助你找出需要哪个版本。
通常,官方的 gvim 版本里已经自带了对 Python 的支持。
不过,你需要先安装 Python:Python 下载链接
要检查 vim 是否支持 Python,可以使用以下命令:
:echo has("python")