Vim compilato con python3 ma ha ('python') restituisce 0


13

Ho appena seguito queste istruzioni per compilare vim con python 3: https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source

Dopo l'installazione ho controllato per vedere se ho python3:

vim --version | grep "python"

Che ha restituito:

+python3/dyn  

e

+python/dyn  

Ma quando avvio vim e digito uno dei comandi followinf, ottengo un 0:

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

Qualcuno ha avuto un problema simile?

EDIT: Hey ragazzi un sacco di commenti utili, volevo solo dire grazie e farvi sapere cosa ho fatto per risolvere questo problema. Ho seguito di nuovo le istruzioni dal primo link che ho fornito, ma questa volta ho rimosso vim.tiny e invece di provare a ottenere vim per supportare sia python2 che python3, ho appena creato con il supporto python3. Questo l'ha risolto

Digitando

python3 print("works")

in vim, spettacoli works. Digitando

echo has('python3')

mi dà un output di 1e infine

vim --version | grep python3

Mi dà un valore di +python3

Grazie ragazzi per tutto l'aiuto e i suggerimenti !!


Prova a eseguire un vero comando Python, ad esempio :python print "works"; questo è il miglior test (almeno interattivo; in uno script preferirei has('python'), che dovrebbe funzionare.
Ingo Karkat,

Se usi Ubuntu, usa il PPA di pi-rho ( launchpad.net/~pi-rho/+archive/ubuntu/dev ). Ha vim costruito con supporto dinamico Python / Python3.
Muru,

Ha funzionato anche per me!
Enrico Maria De Angelis,

Risposte:


4

Questo è il risultato atteso. Non ci sono test has('python/dyn')e has('python3/dyn'), solo has('python')e has('python3').


5
non aiuta ancora se ho ('python3') o ha ('python'), ottengo ancora uno 0
user1314272

Il punto è che non puoi testare il pitone dinamico con has()così ... non usare has().
Romainl,

2
@romainl Allora perché è una funzionalità documentata che può essere verificata con has()under :help feature-list?
Jamessan,

has('python')ritorna 1per +python e +python/dyn . Stessa cosa per has('python3')e +python3/ +python3/dyn. Inoltre, has('python/dyn')e has('python3/dyn')ritorna sempre 0, indipendentemente dal fatto che la funzione sia presente o meno. Conclusione: o non puoi usare has()per determinare se hai +python[3]/dyno né Sato Katsura né io sappiamo come formattare correttamente l'argomento.
Romainl,

1
Tuttavia, sarebbe utile per Vim supportare i /dyncontrolli, soprattutto perché has('python')carica la libreria Python, il che significa che non è possibile utilizzare python3e viceversa.
Jamessan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.