Vim wurde mit python3 kompiliert, hat aber ('python') den Wert 0

13

Ich habe gerade diese Anweisungen befolgt, um vim mit Python 3 zu kompilieren: https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source

Nach der Installation habe ich überprüft, ob ich python3 habe:

vim --version | grep "python"

Welches zurückgegeben:

+python3/dyn  

und

+python/dyn  

Aber wenn ich vim starte und einen der followinf Befehle eingebe, bekomme ich ein 0:

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

Hat jemand ein ähnliches Problem gehabt?

EDIT: Hey Leute, viele hilfreiche Kommentare, ich wollte nur Danke sagen und euch wissen lassen, was ich getan habe, um das zu lösen. Ich habe die Anweisung von dem ersten Link an, den ich bereitgestellt habe, erneut befolgt, aber dieses Mal habe ich vim.tiny entfernt und anstatt zu versuchen, vim dazu zu bringen, sowohl Python2 als auch Python3 zu unterstützen, habe ich nur mit Python3-Unterstützung gebaut. Das hat es behoben

Tippen

python3 print("works")

in vim zeigt works. Tippen

echo has('python3')

gibt mir eine Ausgabe von 1und schließlich

vim --version | grep python3

Gibt mir einen Wert von +python3

Danke Jungs für all die Hilfe und Vorschläge !!

user1314272
quelle
Versuchen Sie, einen tatsächlichen Python-Befehl auszuführen, z :python print "works". Das ist der beste Test (zumindest interaktiv; in einem Skript würde ich es vorziehen has('python'), das funktionieren sollte.
Ingo Karkat
Wenn Sie Ubuntu verwenden, verwenden Sie pi-rhos PPA ( launchpad.net/~pi-rho/+archive/ubuntu/dev ). Es wurde mit dynamischer Python / Python3-Unterstützung erstellt.
Muru
Es hat auch bei mir funktioniert!
Enrico Maria De Angelis

Antworten:

4

Dies ist das erwartete Ergebnis. Es gibt keine Tests has('python/dyn')und has('python3/dyn')nur has('python')und has('python3').

Sato Katsura
quelle
5
hilft immer noch nicht, wenn ich ('python3') oder ('python') habe, bekomme ich immer noch eine 0
user1314272 20.09.16
Der Punkt ist, dass Sie nicht für dynamische Python testen können, has()also ... nicht verwenden has().
Romainl
2
@romainl Warum ist es dann eine dokumentierte Funktion, die mit has()unter überprüft werden kann :help feature-list?
Jamessan
has('python')kehrt 1für +python und zurück +python/dyn . Gleiches für has('python3')und +python3/ +python3/dyn. Auch has('python/dyn')und has('python3/dyn')immer zurück 0, ob die Funktion vorhanden ist oder nicht. Fazit: Entweder können Sie nicht has()bestimmen, ob Sie +python[3]/dyndas Argument haben, oder weder Sato Katsura noch ich wissen, wie Sie es richtig formatieren.
Romainl
1
Obwohl es für Vim nützlich wäre, die /dynÜberprüfungen zu unterstützen , zumal has('python')die Python-Bibliothek geladen wird, was bedeutet, dass Sie sie dann nicht verwenden können python3, und umgekehrt.
Jamessan