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

我试图在Windows上获得gVim的Python支持。 有没有办法做到这一点?

我在用着:

  • Windows XP SP3
  • gVim v。7.3
  • Python 2.7.13(ActivePython通过Windows安装程序二进制文件)

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

您将需要安装Python: Python下载

检查vim是否支持python:

:echo has("python") 

我在Windows 7 64位上遇到了这个问题。 我意识到我使用的是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上(你可以使用: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的脚本现在可以工作了!

我想gVim的未来版本可能会针对其他版本的python进行编译,但是使用这种方法应该可以确定哪个版本是必需的。

如果您已经通过Windows安装程序之一安装了Python,则可能使用Python 2.7支持进行编译。 您可以通过运行来validation这一点:

 :version 

它会吐出Vim编译的所有选项。 你应该这样说

 +python/dyn +python3\dyn 

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

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

被接受的答案并没有解决我的问题,所以我决定通过一些努力后发现我find的解决scheme。

首先,正如接受的答案所指出的那样,您需要同时使用python编译的gVim和相应的python安装。 确保它们都是32位或64位。 我发现从www.vim.org默认的版本没有启用python,也似乎是32位,这不符合我的python27。 我最终得到的是从这个vim Git仓库构build“gvim_8.0.0003_x64.zip”

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

现在vim和我的64位python2.7一起工作。

更新02/24/2017:

上述过程在本地python安装为2.7.9的另一台机器上失败。 我成功时,我的Python版本是2.7.11。

所以,似乎vim Git仓库的构build工作适用于特定的Python版本。 尝试更新你的Python安装到2.7.11,如果可以的话。 如果您必须使用旧版本的Python,那么您可能需要在您的机器上构buildVim源代码。 按照说明操作并不难,并使用Visual Studio提供的cmd而不是Windows默认的cmd。

我有一个类似的问题。 我一直在享受vim的全方位完成function,使用Windows XP,Python 2.7,gVim 7。最近,我搬到了运行Windows 8.1的新电脑。 我安装了gVim和我喜欢的插件,然后试用了一切。 Omni完成了一个错误,说我需要用Python支持编译的vim版本。 在那个阶段,我还没有安装Python。 解决的办法是安装Python,然后重新安装vim。 Omni-conpletion现在可以工作。 也许安装的顺序很重要。

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

我build议安装32位Python,但重新安装Vim似乎是必要的。

在阅读了上面的内容之后,我可以确认在Win8.1上安装它们的顺序并不重要(至less对我来说是这样)。 我已经安装了32位VIM 7.4几个月,然后尝试添加Python,不能这样做。 左Python 2.7.9安装和卸载/重新安装VIM,现在它工作。

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

在这个线程中尝试所有的答案没有成功之后,下面的工作对我来说(Win10,Python 2.7 32位,GVIM 7.4 32位):

  1. 重新运行Python安装程序,select更改Python
  2. select选项将Python添加到path ,默认情况下是closures的
  3. 安装程序完成后,重新启动您的机器

您将要打开语法突出显示

syntax on你的vimrc中(vimrc文件的格式在linux / windows或者其他操作系统上是一样的)

Vim也支持自动缩进,如果你想为python启用自动缩进,请看这里的指南

启用自动缩进的关键是在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