Vim, компільований з python3, але має ('python'), повертає 0


13

Я просто дотримувався цих інструкцій, щоб компілювати vim з python 3: https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source

Після встановлення я перевірив, чи є у мене python3:

vim --version | grep "python"

Що повернулося:

+python3/dyn  

і

+python/dyn  

Але коли я запускаю vim і набираю одну з наступних команд, я отримую 0:

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

Хтось мав подібну проблему?

РЕДАКТ: Ей, хлопці, багато корисних коментарів, я просто хотів сказати спасибі і дозвольте вам, хлопці, знати, що я зробив для вирішення цього питання. Я знову дотримувався інструкції з першого наданого посилання, але цього разу я видалив vim.tiny, і замість того, щоб намагатися отримати vim для підтримки і python2, і python3, я просто будую підтримку python3. Це і виправило це

Введення тексту

python3 print("works")

in vim, показує works. Введення тексту

echo has('python3')

дає мені результат 1і, нарешті,

vim --version | grep python3

Дає мені значення +python3

Дякую хлопцям за всю допомогу та пропозиції !!


Спробуйте виконати фактичну команду Python, наприклад :python print "works"; це найкращий тест (принаймні, інтерактивно; у сценарії, який я вважаю за краще has('python'), який повинен працювати.
Ingo Karkat

Якщо ви перебуваєте на Ubuntu, використовуйте PPA pi-rho ( launchpad.net/~pi-rho/+archive/ubuntu/dev ). Він має вбудований vim з динамічною підтримкою Python / Python3.
муру

Це працювало і для мене!
Енріко Марія Де Анджеліс

Відповіді:


4

Це очікуваний результат. Тестів немає has('python/dyn')і has('python3/dyn'), тільки has('python')і has('python3').


5
все ще не допомагає, якщо у мене є ('python3') або має ('python'), я все одно отримую 0
user1314272

Справа в тому, що ви не можете перевірити на динамічний пітон з has()таким… не використовуйте has().
romainl

2
@romainl Тоді чому це документована функція , яка може бути перевірена з has()Under :help feature-list?
Jamessan

has('python')повертає 1за +python та +python/dyn . Те саме для has('python3')і +python3/ +python3/dyn. Крім того, has('python/dyn')і has('python3/dyn')завжди повертайтеся 0, чи є функція, чи ні. Висновок: або ви не можете використовувати, has()щоб визначити, чи є у вас +python[3]/dynСато Кацура, або я не знаєте, як правильно форматувати аргумент.
romainl

1
Хоча Vim було б корисно підтримувати /dynперевірки, тим більше, що has('python')завантажує бібліотеку Python, а значить, потім ви не можете користуватися python3, і навпаки.
Jamessan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.