我正在尝试在Windows上的gVim中获取Python支持。是否有办法实现这一点?
我正在使用:
- Windows XP SP3
- gVim v. 7.3
- Python 2.7.13 (通过Windows安装程序二进制文件安装的ActivePython)
我正在尝试在Windows上的gVim中获取Python支持。是否有办法实现这一点?
我正在使用:
我曾经遇到了同样的问题,但是在Windows 7上,重启并不能解决它。
我已经安装了gVim 7.3。当时Python的当前版本是3.3,因此我安装了它。但是 :has ("python") 和 :has ("python3") 仍然返回0。
经过多次尝试和错误,我确定了以下几点:
Compilation: cl -c /W3 /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32
-DDYNAMIC_TCL_DLL=\"tcl83.dll\" 表示动态链接Tcl的库文件为“tcl83.dll”,-DDYNAMIC_TCL_VER=\"8.3\" 表示Tcl版本为8.3。-DFEAT_PYTHON表示支持Python,-DDYNAMIC_PYTHON表示使用动态链接的Python,-DDYNAMIC_PYTHON_DLL=\"python27.dll\" 表示动态链接Python的库文件为“python27.dll”。-D FEAT_PYTHON3表示支持Python 3,-DDYNAMIC_PYTHON3表示使用动态链接的Python 3,-DDYNAMIC_PYTHON3_DLL=\"python31.dll\" 表示动态链接Python 3的库文件为“python31.dll”。“-DFEAT_PERL”表示支持Perl,-DDYNAMIC_PERL表示使用动态链接的Perl,-DDYNAMIC_PERL_DLL=\"perl512.dll\" 表示动态链接Perl的库文件为“perl512.dll”。“-DFEAT_RUBY”表示支持Ruby,-DDYNAMIC_RUBY表示使用动态链接的Ruby,-DDYNAMIC_RUBY_VER=191表示Ruby版本为1.9.1,-DDYNAMIC_RUBY_DLL=\"msvcrt-ruby191.dll\" 表示动态链接Ruby的库文件为“msvcrt-ruby191.dll”。“-DFEAT_BIG /Fd.\ObjGOLYHTR/ /Zi”表示启用大型文件支持和生成调试信息。
-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 -DDYNAMI C_ICONV -DDYNAMIC_GETTEXT -DFEAT_TCL -DDYNAMIC_TCL
因此,上述内容告诉我实际上不需要Python 3.3,而是需要3.1(或2.7)。安装Python 3.1后,“:has ("python")”仍返回0,但“:has ("python3")”现在返回1。这应该意味着基于Python的脚本现在可以工作了!我想未来的gVim版本可能会编译其他版本的Python,但使用这种方法应该能让您找出需要的版本。
通常情况下,官方的gvim发行版中已经内置了对Python的支持。
不过你需要安装Python:Python Downloads
可以通过以下方式检查vim是否支持Python:
:echo has("python")
我在 Windows 7 64 位系统上遇到了这个问题。我发现我使用的是 64 位的 Python 2.7.3 和 32 位的 vim 7.3-46。我重新安装了它们的 32 位版本,并且重启了电脑。现在它可以正常工作了。
如果您是通过 Windows 安装程序之一安装 Python,则该版本可能已编译为支持 Python 2.7。您可以通过运行以下命令进行验证:
:version
它将输出Vim编译时使用的所有选项。你的应该会显示类似于
+python/dyn +python3\dyn
这意味着您支持Python 2.7和3.x。 如果您已经有2.5版本,它将无法工作。 您需要升级到2.7或3.x版本。
:echo has("python")
返回0
("python3"
返回0
,这是我猜UtilSnips正在检查的)。 - icc97接受的答案没有解决我的问题,所以我决定发布我在一些努力后找到的解决方案。
首先,正如接受的答案指出的那样,您需要编译了python的gVim和相应的python安装。确保它们都是32位或64位的。 我发现www.vim.org的默认版本没有启用python,而且似乎是32位的,这与我的python27不匹配。最终我使用的是来自vim Git repository的构建“gvim_8.0.0003_x64.zip”
然后我解压缩它,将“vim80”文件夹复制到官方vim安装位置(由从www.vim.org下载的32位安装程序创建)中。
现在vim可以与我的64位python2.7一起使用。
更新于02/24/2017:
上述过程在另一台本地python安装为2.7.9的机器上失败了。我成功时的Python版本是2.7.11。
所以,看起来从vim Git仓库构建的版本适用于特定的Python版本。如果可以,请尝试将Python安装更新到2.7.11。如果必须使用旧版本的Python,则可能需要在您的计算机上构建Vim源代码。按照说明并使用Visual Studio提供的cmd而不是Windows默认cmd并不太难。.vimrc
中添加以下脚本: set pythonthreedll = python36.dll
大多数Windows中的vim发行版是动态加载python的,你必须告诉vim这个dll是什么,并确保python36.dll
在你的PATH
环境变量中。
pythonthreehome
的建议。 - ashrasmun:version
时,它显示我的Vim未编译Python。可能是因为我当时没有安装Python(32位?)。