我只是按照这些说明用python 3编译vim:https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source

安装后,我检查了一下是否拥有python3:

vim --version | grep "python"


返回哪个:

+python3/dyn  




+python/dyn  


但是,当我启动vim并键入followinf命令之一时,我得到一个0: br /> :echo has('python3/dyn')

有人有类似的问题吗?

编辑:
大家好,我想说声谢谢,让大家知道我为解决这个问题所做的事情。我从提供的第一个链接中再次遵循了该指令,但是这次我删除了vim.tiny,而不是试图使vim同时支持python2和python3,我仅使用python3支持进行构建。修复了

打字

python3 print("works")


在vim中,显示:echo has('python3')。输入

echo has('python3')


给我:echo has('python')的输出,最后给我

vim --version | grep python3


给我:echo has('python/dyn')的值

感谢大家的帮助和建议!

评论

尝试运行实际的Python命令,例如:python打印“作品”;这是最好的测试(至少是交互式测试;在脚本中,我更喜欢has('python'),它应该可以工作。

如果您使用的是Ubuntu,请使用pi-rho的PPA(launchpad.net/~pi-rho/+archive/ubuntu/dev)。它具有通过动态Python / Python3支持构建的vim。

它也对我有用!

我遇到了同样的问题,并通过配置Vim(仅使用Python3但不使用Python)解决了它。

#1 楼

这是预期的结果。没有测试has('python/dyn')has('python3/dyn'),只有has('python')has('python3')

评论


如果我执行has('python3')或has('python')仍然没有帮助,我仍然得到0

–user1314272
16-09-20在10:19

关键是您无法使用has()测试动态python,因此…请勿使用has()。

– romainl
16-09-20在11:55

@romainl那么为什么它是一个文档化的功能,可以通过:help feature-list下的has()检查?

–詹姆斯
16-09-20在16:15

has('python')为+ python和+ python / dyn返回1。 has('python3')和+ python3 / + python3 / dyn也是如此。同样,无论该功能是否存在,has('python / dyn')和has('python3 / dyn')始终返回0。结论:您不能使用has()来确定您是否具有+ python [3] / dyn,或者Sato Katsura和我都不知道如何正确设置参数的格式。

– romainl
16-09-20在16:25

虽然,对于Vim支持/ dyn检查很有用,尤其是因为has('python')加载了Python库,这意味着您不能再使用python3,反之亦然。

–詹姆斯
16-09-20在16:30