用python3编译的Vim,但是has('python')返回0


13

我只是按照以下说明用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

  • :echo has('python3/dyn')
  • :echo has('python3')
  • :echo has('python')
  • :echo has('python/dyn')

有人遇到过类似的问题吗?

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

打字

python3 print("works")

在vim中显示works。打字

echo has('python3')

给我一个输出,1最后

vim --version | grep python3

给我一个价值 +python3

谢谢大家的帮助和建议!!


尝试运行实际的Python命令,例如:python print "works";这是最好的测试(至少是交互式测试;在我希望使用的脚本中has('python'),它应该可以工作。)
Ingo Karkat

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

它也对我有用!
Enrico Maria De Angelis

Answers:


4

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


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

关键是您has()不能使用... 测试动态python,请不要使用has()
romainl

2
@romainl那么为什么它是一个可以用has()under 检查的文档功能:help feature-list
jamessan

has('python')回报1+python +python/dynhas('python3')+python3/ 相同+python3/dyn。此外,无论是否存在该功能,has('python/dyn')has('python3/dyn')始终返回0。结论:要么您不能has()用来确定自己是否拥有,+python[3]/dyn要么佐藤桂(Sato Katsura)或我都不知道如何正确设置参数的格式。
romainl

1
虽然,对于Vim支持/dyn检查很有用,特别是因为has('python')加载了Python库,这意味着您不能再使用python3,反之亦然。
jamessan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.