Vim dikompilasi dengan python3 tetapi memiliki ('python') mengembalikan 0

13

Saya baru saja mengikuti instruksi ini untuk mengkompilasi vim dengan python 3: https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source

Setelah menginstal saya memeriksa untuk melihat apakah saya punya python3:

vim --version | grep "python"

Yang dikembalikan:

+python3/dyn  

dan

+python/dyn  

Tetapi ketika saya memulai vim dan mengetik salah satu perintah followinf, saya mendapatkan 0:

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

Adakah yang punya masalah serupa?

EDIT: Hai banyak komentar bermanfaat, saya hanya ingin mengucapkan terima kasih dan memberi tahu kalian apa yang telah saya lakukan untuk menyelesaikan ini. Saya mengikuti instruksi lagi dari tautan pertama yang saya berikan tetapi kali ini saya menghapus vim.tiny dan alih-alih mencoba mendapatkan vim untuk mendukung python2 dan python3, saya hanya membangun dengan dukungan python3. Ini memperbaikinya

Mengetik

python3 print("works")

dalam vim, pertunjukan works. Mengetik

echo has('python3')

memberi saya output 1dan akhirnya

vim --version | grep python3

Memberiku nilai +python3

Terima kasih kawan atas semua bantuan dan sarannya !!

pengguna1314272
sumber
Coba jalankan perintah Python yang sebenarnya, misalnya :python print "works"; itu tes terbaik (setidaknya secara interaktif; dalam naskah saya lebih suka has('python'), yang seharusnya bekerja.
Ingo Karkat
Jika Anda menggunakan Ubuntu, gunakan PPA pi-rho ( launchpad.net/~pi-rho/+archive/ubuntu/dev ). Ini memiliki vim dibangun dengan dukungan Python / Python3 dinamis.
muru
Itu juga berhasil untuk saya!
Enrico Maria De Angelis

Jawaban:

4

Ini adalah hasil yang diharapkan. Tidak ada tes has('python/dyn')dan has('python3/dyn'), hanya has('python')dan has('python3').

Sato Katsura
sumber
5
masih tidak membantu jika saya memiliki ('python3') atau memiliki ('python'), saya masih mendapatkan 0
user1314272
Intinya adalah bahwa Anda tidak dapat menguji python dinamis dengan has()begitu ... jangan gunakan has().
romainl
2
@romainl Lalu mengapa ini merupakan fitur terdokumentasi yang dapat diperiksa dengan di has()bawah :help feature-list?
jamessan
has('python')kembali 1untuk +python dan +python/dyn . Hal yang sama untuk has('python3')dan +python3/ +python3/dyn. Juga, has('python/dyn')dan has('python3/dyn')selalu kembali 0, apakah fitur tersebut ada atau tidak. Kesimpulan: Anda tidak dapat menggunakan has()untuk menentukan apakah Anda memiliki +python[3]/dynatau tidak Sato Katsura atau saya tidak tahu bagaimana memformat argumen dengan benar.
romainl
1
Meskipun, akan berguna bagi Vim untuk mendukung /dynpemeriksaan, terutama karena has('python')memuat pustaka Python, yang berarti Anda tidak dapat menggunakan python3, dan sebaliknya.
jamessan