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

时间:2011-01-17 21:31:05

标签: python vim

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

我正在使用:

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

13 个答案:

答案 0 :(得分:37)

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

您需要安装python:Python Downloads

检查vim是否支持python:

:echo has("python")

答案 1 :(得分:31)

我遇到了同样的问题,但是在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,但是使用这种方法可以让你找出所需的版本。

答案 2 :(得分:25)

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

答案 3 :(得分:11)

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

:version

它将吐出Vim编译的所有选项。你应该说像

+python/dyn +python3\dyn

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

答案 4 :(得分:6)

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

答案 5 :(得分:4)

接受的答案并没有解决我的问题,因此我决定在经过一些努力后发布我找到的解决方案。

首先,正如已接受的答案所指出的那样,你需要同时使用python编译的gVim和相应的python安装。确保它们都是32位或64位。 我发现www.vim.org的默认构建没有启用python,它似乎也是32位,它与我的python27不匹配。我最终得到的是构建" gvim_8.0.0003_x64.zip"来自vim Git repository

然后我解压缩它,复制了" vim80"文件夹进入官方vim安装位置(由32位安装程序下载www.vim.org创建)。

现在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。

答案 6 :(得分:1)

我有类似的问题。我使用Windows XP,Python 2.7,gVim 7已经享受了vim的全方位功能多年。最近我搬到了运行Windows 8.1的新PC上。我安装了gVim和我喜欢的插件,然后试了一切。 Omni-completion给出了一个错误,说我需要使用Python支持编译的vim版本。在那个阶段,我还没有安装Python。解决方案是安装Python然后重新安装vim。 Omni-conpletion现在有效。也许安装的顺序很重要。

答案 7 :(得分:0)

当我输入:version时,它显示我的Vim没有用Python编译。也许是因为我当时没有Python(32位?)。

我按照建议安装了32位Python,但重新安装Vim似乎是必要的。

答案 8 :(得分:0)

阅读完上述内容后,我可以确认在Win8.1上安装它们的顺序很重要(对我来说最少)。我安装了32位VIM 7.4几个月,然后尝试添加Python而无法做到。左侧Python 2.7.9已安装和卸载/重新安装VIM,现在可以正常运行。

答案 9 :(得分:0)

下载名为“OLE GUI可执行文件”的文件

答案 10 :(得分:0)

在此线程中尝试所有答案后没有成功,以下内容对我有用(Win10,Python 2.7 32bit,gvim 7.4 32bit):

  1. 重新启动Python安装程序,选择更改Python
  2. 选择选项将Python添加到路径,默认情况下已关闭
  3. 安装程序完成后,重新启动计算机

答案 11 :(得分:0)

将以下脚本添加到您的.vimrc

set pythonthreedll = python36.dll

Windows中大多数vim分发都是动态加载python,您必须告诉vim dll是什么,并确保python36.dll在您的PATH环境变量中。

答案 12 :(得分:-7)

您需要启用语法突出显示

syntax on放入你的vimrc中(vimrc文件的格式在linux / windows或任何其他操作系统上都是相同的)

Vim还支持自动延迟,如果你想为python启用自动缩进,请查看本指南here

启用自动延迟的关键是在vimrc中包含以下内容

autocmd BufRead,BufNewFile *.py syntax on
autocmd BufRead,BufNewFile *.py set ai
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,with,try,except,finally,def,class