如何在Windows上的gVim中启用Python支持?

was*_*ans 48 python vim

我正试图在Windows上的gVim中获得Python支持.有没有办法实现这一目标?

我正在使用:

  • Windows XP SP3
  • gVim v.7.3
  • Python 2.7.13(通过Windows Installer二进制文件的ActivePython)

Dav*_*vid 36

通常,python支持是在官方的gvim发行版中构建的.

您将需要安装python:Python下载

检查vim是否支持python:

:echo has("python")
Run Code Online (Sandbox Code Playgroud)

  • 好吧,我发出了命令,但它返回'0'.这就是我问这个问题的原因. (23认同)
  • 正如我在上面的评论中提到的,它现在在重新安装Python并重新启动系统之后工作.'echo'命令现在返回1.我想我必须选择你的答案作为回答.谢谢 (5认同)
  • 也许是安装顺序:我安装了Python 2.7.1然后gvim,它没有用.然后我再次安装了Python 2.7.1 ......它的工作原理.这意味着我需要在Python之前安装gvim吗? (3认同)

Dan*_*iel 34

我有同样的问题,但在Windows 7上,重启并没有解决它.

我已经安装了gVim 7.3.在撰写本文时,当前的Python版本是3.3,所以我安装了它.但是:has("python")和:has("python3")仍然返回0.

经过多次反复试验,我确定:

  • 如果gVim是32位,它通常在64位Windows上(你可以使用: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/ /牛/ GL -DNDEBUG/ZL/MT -DFEAT_OLE -DFEAT_MBYTE_IME -DDYNAMIC_IME -DFEAT_GUI_W32 -DDYNAMI C_ICONV -DDYNAMIC_GETTEXT -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL =\"tcl83.dll \" -DDYNAM IC_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 -DDYNAMI C_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的脚本现在可以工作了!

我想可以针对其他版本的python编译未来版本的gVim,但是使用这种方法可以让你找出需要哪个版本.

  • 好的,经过许多令人沮丧的Python 3.5.1 64位和32位安装以及大量重启之后,这才是答案…… (2认同)

Apr*_*che 26

我在Windows 7 64位上遇到此问题.我意识到我使用的是64位Python 2.7.3和32位vim 7.3-46.我重新安装了32位版本,然后重新启动计算机.现在它有效.


Tux*_*tat 11

如果您通过其中一个Windows安装程序安装了Python,则可能是使用Python 2.7支持编译的.您可以通过运行来验证这一点:

:version
Run Code Online (Sandbox Code Playgroud)

它将吐出Vim编译的所有选项.你应该说些什么

+python/dyn +python3\dyn
Run Code Online (Sandbox Code Playgroud)

这意味着你支持python 2.7和3.x. 如果你已经有2.5它将无法正常工作.您需要升级到2.7或3.x.


Sla*_*ava 7

对不起,迟到的贡献.问题是你不能将x86 vim与x64 python lib混合使用,并且所有建议的解决方案都归结为重新安装x86 python.好吧,我不想重新安装Python,Ruby,谁知道还有什么依赖于那些只是因为vim没有在Windows上正式提供公平的x64分发.好消息是你仍然可以在http://vim.wikia.com/wiki/Where_to_download_Vim上找到它.祝你好运,并照顾Python库版本.


Lei*_*Lei 5

接受的答案不能解决我的问题,因此我决定将经过一些努力后发现的解决方案发布给我。

首先,正如公认的答案所指出的,您将需要同时启用python的gVim编译和相应的python安装。确保它们都是32位或64位。我发现www.vim.org的默认构建没有启用python,它似乎也是32位的,与我的python27不匹配。我最终得到的是从此vim Git存储库构建的“ gvim_8.0.0003_x64.zip”

然后,我将其解压缩,将“ vim80”文件夹复制到正式的vim安装位置(由下载的32位安装www.vim.org创建)。

现在,vim可与我的64位python2.7一起使用。

更新02/24/2017:

上面的过程在另一台安装了2.7.9本地python的计算机上失败了。成功后,我的Python版本是2.7.11。

因此,似乎vim Git存储库中的构建适用于特定的Python版本。如果可以,请尝试将Python安装更新为2.7.11。如果必须使用旧版本的Python,则可能需要在计算机上构建Vim源代码。按照说明进行操作并不难,可以使用Visual Studio提供的cmd代替Windows默认的cmd。