我正在尝试在Windows上的gVim中获得Python支持。有没有办法实现这个目标?
我正在使用:
答案 0 :(得分:37)
答案 1 :(得分:31)
我遇到了同样的问题,但是在Windows 7上,重启没有修复它。
我已经安装了gVim 7.3。在撰写本文时,当前的Python版本是3.3,所以我安装了它。但是:has(“python”)和:has(“python3”)仍然返回0。
经过多次反复试验,我确定了:
编译: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):
答案 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