Vim compilé avec python3 mais a ('python') renvoie 0

13

Je viens de suivre ces instructions pour compiler vim avec python 3: https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source

Après l'installation, j'ai vérifié si j'avais python3:

vim --version | grep "python"

Qui a renvoyé:

+python3/dyn  

et

+python/dyn  

Mais quand je démarre vim et tape l'une des commandes suivantes, j'obtiens un 0:

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

Quelqu'un at-il eu un problème similaire?

EDIT: Hé les gars beaucoup de commentaires utiles, je voulais juste dire merci et vous faire savoir ce que j'ai fait pour résoudre ce problème. J'ai à nouveau suivi les instructions du premier lien que j'ai fourni, mais cette fois j'ai supprimé vim.tiny et au lieu d'essayer d'obtenir que vim prenne en charge à la fois python2 et python3, je construis simplement avec le support python3. Cela l'a corrigé

Dactylographie

python3 print("works")

à vim, montre works. Dactylographie

echo has('python3')

me donne une sortie de 1et enfin

vim --version | grep python3

Me donne une valeur de +python3

Merci les gars pour toute l'aide et les suggestions !!

user1314272
la source
Essayez d'exécuter une véritable commande Python, par exemple :python print "works"; c'est le meilleur test (au moins interactivement; dans un script que je préférerais has('python'), qui devrait fonctionner.
Ingo Karkat
Si vous êtes sur Ubuntu, utilisez le PPA de pi-rho ( launchpad.net/~pi-rho/+archive/ubuntu/dev ). Il a construit vim avec un support dynamique Python / Python3.
muru
Il a travaillé pour moi aussi!
Enrico Maria De Angelis

Réponses:

4

C'est le résultat attendu. Il n'y a pas de tests has('python/dyn')et has('python3/dyn'), seulement has('python')et has('python3').

Sato Katsura
la source
5
n'aide toujours pas si j'ai ('python3') ou a ('python'), j'obtiens toujours un 0
user1314272
Le fait est que vous ne pouvez pas tester le python dynamique avec has()donc… ne l'utilisez pas has().
romainl
2
@romainl Alors pourquoi est-ce une fonctionnalité documentée qui peut être vérifiée avec has()sous :help feature-list?
jamessan
has('python')renvoie 1pour +python et +python/dyn . Même chose pour has('python3')et +python3/ +python3/dyn. Aussi, has('python/dyn')et has('python3/dyn')revenez toujours 0, que la fonctionnalité soit présente ou non. Conclusion: soit vous ne pouvez pas utiliser has()pour déterminer si vous avez +python[3]/dynou ni Sato Katsura ni moi ne savons comment formater correctement l'argument.
romainl
1
Cependant, il serait utile pour Vim de prendre en charge les /dynvérifications, d'autant plus que has('python')charge la bibliothèque Python, ce qui signifie que vous ne pouvez alors pas l'utiliser python3, et vice-versa.
jamessan