Vim skompilowany z python3, ale ma („python”) zwraca 0

13

Właśnie wykonałem te instrukcje, aby skompilować vima z Pythonem 3: https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source

Po instalacji sprawdziłem, czy mam python3:

vim --version | grep "python"

Który zwrócił:

+python3/dyn  

i

+python/dyn  

Ale kiedy uruchamiam vima i wpisuję jedno z następujących poleceń, otrzymuję 0:

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

Czy ktoś miał podobny problem?

EDYCJA: Hej chłopaki, wiele pomocnych komentarzy, chciałem tylko podziękować i dać Wam znać, co zrobiłem, aby to rozwiązać. Ponownie podążyłem za instrukcją z pierwszego podanego linku, ale tym razem usunąłem vim.tiny i zamiast próbować uzyskać vima do obsługi zarówno python2, jak i python3, po prostu buduję z obsługą python3. To naprawiło to

Pisanie na maszynie

python3 print("works")

w vim, pokazuje works. Pisanie na maszynie

echo has('python3')

daje mi wynik 1i wreszcie

vim --version | grep python3

Daje mi wartość +python3

Dzięki chłopaki za wszelką pomoc i sugestie !!

użytkownik1314272
źródło
Spróbuj uruchomić rzeczywistą komendę Python, np :python print "works".; to najlepszy test (przynajmniej interaktywnie; w skrypcie wolałbym has('python'), który powinien zadziałać.
Ingo Karkat,
Jeśli korzystasz z Ubuntu, skorzystaj z PPA pi-rho ( launchpad.net/~pi-rho/+archive/ubuntu/dev ). Ma vim zbudowany z dynamiczną obsługą Python / Python3.
muru
Dla mnie też zadziałało!
Enrico Maria De Angelis

Odpowiedzi:

4

To oczekiwany wynik. Nie ma testów has('python/dyn')i has('python3/dyn')tylko has('python')i has('python3').

Sato Katsura
źródło
5
nadal nie pomaga, jeśli mam ma ('python3') lub ma ('python'), nadal dostaję 0
użytkownik1314272
Chodzi o to, że nie można testować dynamicznego Pythona, has()więc… nie używaj has().
romainl,
2
@romainl Więc dlaczego jest to udokumentowane, że funkcja może być sprawdzane z has()Under :help feature-list?
jamessan
has('python')zwraca 1dla +python i +python/dyn . To samo dotyczy has('python3')i +python3/ +python3/dyn. Również has('python/dyn')i has('python3/dyn')zawsze wrócić 0, czy funkcja istnieje, czy nie. Wniosek: nie możesz użyć has()do ustalenia, czy masz, +python[3]/dynani Sato Katsura, ani ja nie wiemy, jak poprawnie sformatować argument.
romainl
1
Chociaż Vim byłby użyteczny do obsługi /dynkontroli, zwłaszcza, że has('python')ładuje bibliotekę Python, co oznacza, że ​​wtedy nie możesz używać python3i na odwrót.
jamessan